Per eseguire applicazioni Windows su Linux spesso ci si rivolge alla virtualizzazione. Installando il sistema operativo Microsoft in una macchina virtuale, è possibile avviare qualunque programma Windows. L’alternativa consiste nell’utilizzo di Wine, un software di compatibilità che crea un’implementazione delle API di Windows, consentendo ai programmi di essere eseguiti direttamente su una macchina Linux.
Non tutti i programmi funzionano correttamente su Linux utilizzando Wine: nell’Application Database sono riportati quelli rilevati come compatibili. Wine è acronimo di Wine Is Not an Emulator proprio perché non è un emulatore: non cerca di riprodurre le caratteristiche, anche hardware, del sistema Windows. Wine fornisce invece un’implementazione delle API di Windows su Linux. Arrivando ad assicurare un’esecuzione nativa: almeno questa è l’impressione che si ha. Lo stesso approccio è stato portato all’estremo, ad esempio, in wubuntu, progetto che porta Windows 11 in Linux.
Programmi Windows su Linux, in una bottiglia
Un’applicazione basata su Wine che offre un approccio flessibile e moderno per eseguire programmi Windows su Linux si chiama Bottles. Il nome Bottles deriva dal fatto che grazie ad essa gli utenti Linux possono creare delle “bottiglie” ovvero degli ambienti virtuali separati, tutti basati su Wine, per il caricamento e la gestione delle applicazioni Windows.
Ogni bottiglia contiene un’installazione separata di Wine insieme alle librerie e alle dipendenze necessarie per eseguire un’applicazione specifica. Grazie a Bottles è possibile isolare le applicazioni Windows in esecuzione sul sistema Linux e gestirle in modo indipendente.
Basta semplicemente selezionare il file d’installazione dell’applicazione: Bottles si occupa di configurare l’ambiente appropriato. Inoltre, Bottles integra funzionalità di aggiornamento automatico per mantenere Wine e le applicazioni sempre aggiornate con le ultime versioni disponibili.
Rispetto a Wine, va detto, Bottles non aggiunge ulteriori vantaggi in termini di compatibilità: è quindi sempre opportuno verificare la compatibilità delle applicazioni Windows così come suggerito in precedenza.
Ambienti preconfezionati ma liberamente personalizzabili
Bottles ha il grande vantaggio di introdurre un modo completamente nuovo di gestire il caricamento delle applicazioni Windows su Windows. Gli ambienti sono una combinazione di impostazioni, librerie e dipendenze pronte per l’uso che possono essere liberamente personalizzate dagli utenti.
Ad esempio, selezionando l’ambiente applicativo, Bottles abilita automaticamente DXVK e VKD3D assicurando il supporto per i programmi multimediali (modellazione 3D, editing video, disgeno,…). DXVK e VKD3D sono progetti open source che offrono supporto per le API grafiche DirectX su Linux utilizzando Vulkan come backend.
DXVK, acronimo di DirectX to Vulkan, è un layer di compatibilità che traduce le chiamate DirectX 10, 11 e 12 in chiamate Vulkan. In questo modo è possibile eseguire giochi e applicazioni DirectX su Linux sfruttando le prestazioni e le funzionalità di Vulkan. VKD3D, acronimo di Vulkan-based Direct3D, è un progetto simile ma si concentra specificamente sul supporto per le API DirectX 12. È stato sviluppato per offrire un’alternativa open source alla libreria proprietaria WineD3D per l’esecuzione su Linux dei software che fanno uso di DirectX 12.
È facoltà dell’utente scegliere eventualmente l’opzione Custom per personalizzare in profondità il comportamento di ciascuna “bottiglia” su Linux, fare test ed esperimenti.
Gestore delle dipendenze per i programmi Windows
Il software Windows può necessitare di diverse dipendenze ovvero pacchetti aggiuntivi che servono affinché il programma funzioni correttamente. Bottles viene fornito con un gestore delle dipendenze potente e facile da usare che automatizza l’aggiunta dei componenti necessari per il caricamento e l’utilizzo di ciascun programma.
Basta cercare il pacchetto che serve e poi richiederne l’installazione: Bottles si occupa di scaricarlo, configurarlo e renderlo disponibile sul sistema Linux in uso.
Alcuni esempi di dipendenze che accomunano molti software sviluppati per la piattaforma Windows sono vcredist, dotnet, dotnetcore3, msxml, d3dx9, d3compiler e fddshow, giusto per fare qualche nome.
Grazie anche gli installer, predisposti dalla comunità, Bottles permette di attingere da una ricca lista di software Windows da installare su Linux. Ciascun installer è un insieme di regole che permettono a Bottles di installare il programma selezionato in una bottiglia, in maniera del tutto automatizzata.
Ogni installer utilizza lo stesso gestore delle dipendenze accessibile attraverso l’interfaccia di Bottles: ogni eventuale dipendenza che concorre al funzionamento di un software Windows viene elaborata singolarmente e in automatico dispensando l’utente dal doverlo fare con un approccio manuale.
Ogni programma Windows viene contrassegnato con un “punteggio”: Bronze, Silver, Gold, Platinum. Si tratta di uno schema che viene utilizzato per esprimere il grado di compatibilità con il sistema Linux nei test condotti dalla comunità. Ovviamente, Platinum sono i software Windows che hanno evidenziato massima compatibilità.
Il meccanismo delle istantanee per annullare le modifiche
Bottles offre anche un gestore delle istantanee che permette agli utenti di annullare gli effetti di una modifica e riportare il contenuto della “bottiglia” a uno stato precedente. Abilitando questo strumento, Bottles crea automaticamente una nuova istantanea, ad esempio, ogni volta che si installa una nuova dipendenza.
In caso di problemi è possibile tornare sui propri passi ripristinando una precedente istantanea: lo si fa attraverso la sezione Snapshots dell’interfaccia di Bottles.
In definitiva, Bottles semplifica notevolmente il processo di configurazione e gestione delle applicazioni Windows su Linux. Fornisce un’interfaccia utente intuitiva e strumenti dedicati per l’installazione, la configurazione e la gestione delle applicazioni Windows. Attività che diventano così alla portata di tutti gli utenti.