Programmi Windows in GNU/Linux

Il logo di Wine
Uno dei deterrenti storici all’adozione di GNU/Linux, specialmente da parte di chi non conosce bene questo sistema operativo (o non lo conosce affatto) è il fatto di non essere compatibile con le applicazioni Windows. Anche se molti software per il sistema Microsoft esistono anche in versione GNU/Linux, è innegabile che, sopratutto quando si è abituati all’utilizzo di uno specifico software, lo si voglia utilizzare senza essere costretti a imparare come funziona un altro prodotto alternativo. Un discorso a parte riguarda poi i videogame, tradizionale tallone d0achille di GNU/Linux (non per propri motivi, ma dei sviluppatori di giochi, infatti su GNU/Linux andrebbero benissimo i giochi). I giochi “tradotti” anche per GNU/Linux sono davvero pochi e fatta eccezione per alcuni titoli di primo piano (come Unreal Tournament), nella maggior parte dei casi l’appasionato che opta per GNU/Linux (in una delle sue vesti) è costretto a ripiegare su programmi molto meno conosciuti ( e questo non è che sia un grave problema..). Per superare questa “bariera architettonica” è nato, anni fa, il progetto Wine.

- Wine is not an Emulator!
In realtà, il discorso di trasferire le applicazioni native Windows sotto GNU/Linux non è nuovo, anzi, provede da diversi anni. le filosofie di base sono due: la prima prevede la ricompilazione dei programmi tramite opportune librerie specifiche per GNU/Linux. L’incoveniente, in questo caso, è che bisogna avere accesso ai sorgenti del programma, cosa non sempre possibile(tipicamente impossibile con il software commerciale). Da questa considerazione nasce perciò l’approccio di Wine: creare uno “strato” di software in grado di “tradurre” le chiamate ad alcune funzioni tipiche di Windows, per farle comprendere ed eseguire sotto GNU/Linux. Si tratta di un’opera colossale, per molti ragioni di natura squisitamente tecnica (e che quindi sono fuori dal “focus” di questo articolo), il che significa che, almeno per il momento, il sogno della compatibilità totale è fuori portata. Nonostante ciò, il progetto Wine è in ostante evoluzione e la compatibilità migliora di versione in versione. La parte più difficile è (guarda caso) quella riguardante i giochi e, più in generale, tutti i software che utilizzano le DirectX, cioè le librerie grafiche specifiche di Windows. E’ per questo motivo che, sul sito ufficiale, viene mantenuta una lista di tutti i software che girano sotto Wine. La lista è organizzata in tre sezioni: la prima, denominata Platinum, riporta tutti i programmi che funzionano correttamente senza bisogno di particolari accorgimenti; la sezione Gold contiene invece le applicazioni che girano in maniera ottimale dopo opportuni accorgimenti sulla configurazione; infine, la sezione Silver elenca tutti i software che girano più con qualche difetto/inconveniente, che però di massima non ne pregiudica le funzionalità.
Intorno alle librerie Wine esistono diverse “leggende metropolitane”, alimentate come sempre dai detrattori dell’ultima ora (specialmente quelli che si accaniscono tout our su GNU/Linux) e dagli immancabili mal informati. Al tempo stesso, è importante avere presenti alcune limitazioni che sono oggettive e non vanno trascurate. La prima critica errata è che Wine è un emulatore, e che quindi, sarà sempre lento. Per smontare questa obbiezione, basta leggere bene il nome: Wine sta infatti per “Wine is not an Emulator“, cioè “Wine non è un emulatore”. più facile di così! All’atto pratico, Wine simula solo alcune librerie di Windows, quindi in teoria un programma nato per la piattaforma Microsoft fatto funzionare sotto Wine potrebbe risultare persino più veloce della sua controparte ricompilata in GNU/Linux. Pur considerando, quindi, che per espressa dichiarazione degli autori, le prestazioni non sono l’aspetto più importante dello sviluppo, rimane il fatto che come funzionalità un programma sotto Wine dipende da una serie di fattori (risorse hardware, qualità del codice dell’applicazione…) che concorrono alle sue prestazioni. In linea generale, non si riscontrano differenze tangibili per tutto ciò che non fa uso “pesante” della grafica. Un’altra leggenda riguarda il fatto che Wine emulerebbe una scarsa percentuale delle API di Windows e che quindi la compatibilità sarà sempre minima. Anche questo è inesatto: in realtà è la percentuale di funzioni non emulate ad essere minima, il che significa che il numero di programmi che possono girare sotto Wine è molto elevato. Purtroppo, una delle contestazioni mosse a Wine è del tutto fondata, ed è anche la sua principale limitazione: il sistema al momento funziona solo su processori x86 intel. Chi usa GNU/Linux in abbinamento ad altre CPU, quindi, non può usare queste librerie.
Configurare e installare Wine sotto Ubuntu, Debian e altri debian-derivati è decisamente semplice: basta infatti utilizzare lo strumento di installazione software (synaptic) e cercare Wine, spuntare l’apposita casella e procedere all’installazione.Se Wine non fosse elencato, basta aggiornare gli elenchi delle applicazioni e riprovare. Per quanto riguarda invece la configurazione, da diverse versioni è disponibile in dotazione al pacchetto un apposito strumento, denominato Winecfg, che consente di intervenire su diversi aspetti dell’emulazione, dal sottosistema audio utilizzato, alla versione di Windows da “spacciare” all’applicazione da far girare (per compatibilità), fino alla configurazione delle unità floppy (ormai in disuso) e CD/DVD. Per installare sotto Wine un programma per Windows, si opera esattamente come si farebbe nell’ambiente operativo Microsoft; tipicamente, ciò significa lanciare il classico programma di installazione. Se ciò non funzionasse basta cliccare con il tasto destro e selezionare “Apri con Wine Windows Emulator”.Wine gestisce automaticamente le operazioni di creazione di icone sul desktop e nel menu applicazioni, quindi in molti casi non è necessario fare altro. Qualora non fosse prevista la creazione delle icone, o se non dovesse funzionare correttamente, si può lanciare l’applicazione a mano, oppure aggiungere manualmente l’icona nell’apposito sotto menu di Wine.

- Wine su Ubuntu (non è una schermata mia)
Una delle differenze fondamentali fra GNU/Linux e Windows è che il primo non fa uso del registro di sistema (o “registry”) per memorizzare dettagli di configurazione delle applicazioni, cosa invece assolutamente “standard” del sistema operativo targato Microsoft. Wine ovvia al problema creando una versione virtuale del registro di configurazione. Anche questo è uno dei punti “controversi” e proni alle critiche. D’altra parte, non c’è altro modo per far funzionare correttamente molte applicazioni Windows di simulare il registry, in quanto altrimenti le stesse darebbero errori di vario tipo, non trovando nel registro le informazioni che cercano. Tutti e tre i tronchi principali del registro di Windows sono riprodotti sotto Wine e vengono creati automaticamente alla prima esecuzione del pacchetto. In assoluta analogia con Windows, Wine dispone dello strumento “regedit” (ovviamente riprodotto) per la manipolazione delle informazioni contenuto nel registro di sistema.
Fin qui abbiamo visto, seppur brevemente, i pregi e i difetti del sistema Wine. pur trattandosi di uno sforzo immane e lodato senza riserve l’iniziativa, Wine è comunque tutt’altro che perfetto. E’ perciò opportuno spendere qualche parola anche sulle possibili soluzioni alternative, utili specialmente nel momento in cui uno specifico programma che voi usate non volesse proprio saperne di funzionare, e tuttavia fosse necessario. La prima via da ripercorrere è quella di verificare se il programma che vuoi usare non ne esista un “clone” più o meno somigliane. Questo elimina il problema di comptibilità e ti permette di lavorare “in santa pace” con il tuo software preferito. Un secondo sistema è quello di usare, in parallelo, un secondo sistema operativo. Windows è la ovvia scelta di elezione, ma chiaramente è necessario disporre di una licenza (no, il tuo WinXP+Crack+Serials+Tutt+ITA.iso non vuol dire che disponi di licenza
). Se vuoi scegliere una soluzione open source, puoi provare ReactOS. Si tratta di un sistema operativo che condivide buona parte del codice Wine, ma che cerca di simulare il omportamento di Windows più da vicino, per esempio supportandone il formato driver ( no, il team reactOS ha cercato di non simulare anche i crash, la schermata blu, e altre sciccherie di Windows, sono protette da copyright!!
) Ciò consente, ad esempio, di usare periferiche per le quali non esiste driver nativo per GNU/Linux. L’ultima possibilità è data dall’adozione di una cosidetta “macchina virtuale”, cioè un sistema software che simula in tutto e per tutto l’hardware di un PC. Tramite VM (acronimo di “Virtual Machine”) puoi, ad esempio, far girare una copia di Windows all’interno di GNU/Linux, senza perchiò dover scegliere all’avvio quale sistema operativo lanciare. A livello commerciale, il prodotto più conosciuto e potente è senz’altro VMWare, mentre le alternative opensource più note sono Bochs e QEMU.
Approfondimenti / Link esterni
- Wine: cosa dice Wikipedia
- Sito Ufficiale Wine
- Installare Wine su Ubuntu (questa guida può essere applicata anche a Debian)
- ReactOS: cosa dice Wikipedia
- Sito ufficiale reactOS
- Sito ufficiale Virtual Box (una delle migliori macchine virtuali in circolazione)
- Virtual Box su Wikipedia