Wine, installare e avviare applicazioni per Windows in ambiente Linux: configurazione, guida e tutorial

Wine, installare e avviare applicazioni per Windows in ambiente Linux: configurazione, guida e tutorial. Scarica la guida in pdf in italiano.

Wine è sicuramente lo strumento più utilizzato per poter installare e avviare applicazioni per Windows in ambiente Linux. Dopo 15 anni di sviluppo il progetto è ormai molto maturo da poter considerare il software come un must per chi usa distribuzioni Linux quotidianamente rappresentando al momento la soluzione migliore per far girare i programmi Windows sotto il pinguino, videogiochi compresi. Precisiamo che stiamo parlando di un’applicazione di nicchia che non sempre riesce a dare risultati soddisfacenti per tutti i programmi Windows, a cui è sicuramente da preferire una soluzione multiboot Windows-Linux gestita magari da Grub.

Wine ha comunque introdotto con il passare del tempo tantissime novità, ed è stato migliorato notevolmente il supporto ad ogni genere di software. Il database dei software supportati, infatti, è diventato molto vasto, e permette di soddisfare le esigenze praticamente di tutti, e la configurazione dell’ambiente di lavoro risulta essere piuttosto semplificato grazie a “winecfg”. Tecnicamente Wine non è un emulatore (Wine Is Not an Emulator) ma un’applicazione che fornisce alla distribuzione Linux una reimplementazione delle API di Windows per Unix permettendo una compatibilità di basso livello con i binari destinati al sistema operativo targato Microsoft.

Un pò di storia
Wine (Wine Is Not an Emulator, un acronimo ricorsivo, Wine non è un emulatore) è un software scritto in C nato originariamente per GNU/Linux creato da Bob Amstadt (il capo progetto iniziale) e Eric Youngdale nel 1993. Invece che agire come un emulatore completo, Wine implementa un layer di compatibilità, offrendo implementazioni alternative e open source delle DLL, chiamate per i programmi di Windows e processi per sostituire il kernel di Windows NT. Wine è stato sviluppato principalmente per Linux, ma successivamente sono stati rilasciati port per Mac OS X, FreeBSD e Solaris, che vengono aggiornati più o meno in contemporanea con la versione Linux. Versioni risalenti al 1999 di Wine sono disponibili per OpenBSD e NetBSD. Anche se attualmente non è aggiornato, paradossalmente, è disponibile un port delle DLL di Wine per Microsoft Windows. Il progetto si è rivelato lungo e difficile per gli sviluppatori, soprattutto a causa della documentazione incompleta e non corretta delle API di Windows. Il progetto inizialmente rilasciava Wine sotto licenza MIT come il sistema X Window, ma a causa di preoccupazioni per le versioni proprietarie di Wine che in quel modo potevano non rilasciare le loro modifiche al progetto di base, a partire da marzo 2002 il progetto ha utilizzato la licenza LGPL per Wine. La prima release candidate per la versione 1.0 è stata rilasciata il 9 maggio 2008. Dopo altre quattro release candidate, la versione 1.0 di Wine è stata rilasciata il 17 giugno 2008, dopo 15 anni di sviluppo.

Funzionamento
Wine non emula nessuna architettura o sistema operativo, bensì fornisce ai programmi in esecuzione il supporto necessario per l’utilizzo di specifiche funzioni di Windows eventualmente richieste. Per fare ciò Wine si appoggia al sistema grafico, in quanto gran parte delle applicazioni native per Win32 necessitano di primitive grafiche per la gestione di finestre (le applicazioni a riga di comando sono comunque utilizzabili tramite il programma wineconsole). L’architettura del sistema Wine si rifà a quella dei sistemi NT. Al livello più alto della gerarchia si trova l’applicazione da eseguire, la quale si interfaccia con un sottoinsieme di librerie specifiche del programma ed alcune librerie di sistema.

Queste librerie non comunicano direttamente con il kernel ma con un sottosistema specifico per la piattaforma Win32, coadiuvato da una libreria di interfaccia (la NTDLL). In Windows NT, le applicazioni non effettuano chiamate dirette a funzioni del kernel, bensì ad uno dei sottosistemi realizzati, i quali si prodigano di effettuare le comunicazioni ai livelli più bassi; a questo punto della gerarchia, il ruolo di interfaccia del kernel viene sostituito dal wineserver, un programma attivo come processo demone che gestisce i processi ed i thread delle applicazioni, oltre alla loro sincronizzazione ed intercomunicazione.

Parallelamente al wineserver, l’applicazione viene avviata tramite l’incapsulamento in un wine-thread, un programma client visibile come un processo Unix a tutti gli effetti. Le applicazioni e le librerie che si riferiscono direttamente ai driver di sistema di windows vengono reindirizzate verso la rispettiva componente implementata dal wine driver. Nella sua interezza il sistema prevede che vengano poi utilizzati i driver del kernel del sistema operativo utilizzato, in maniera invisibile ai livelli più alti. Alla base del sistema, sia il server che i programmi client di Wine fanno riferimento alle librerie standard del sistema Unix, ed in particolare alla libreria di sistema ed a quella del sistema X. Il tutto, nella sua interezza, viene eseguito nello spazio utente del sistema operativo.

Il programma può usufruire della directory contenente la struttura base di Windows, con le directory “Windows”, “Programmi”, “Documenti”, le DLL, e i file di configurazione (come i file INI e il Registro di sistema). Può essere quella originale, o, meglio, una creata appositamente, una directory “fake windows”. Ci sono molte utility per configurare wine, a parte wine-utils che sono applicazioni base integrate con wine per gestirlo (regedit, pannello di controllo wine ed altre), la più comune e funzionale è winetools ma esiste anche winesetuptk, il cui sviluppo è, però, fermo da tempo, e Sidenet. Una volta configurato Wine per avviare un file eseguibile di Windows basta digitare nel terminale wine /percorso/file.exe

Le reazioni di Microsoft
Microsoft non ha mai reso dichiarazioni pubbliche su Wine. Comunque Microsoft Windows Update bloccherà eventuali aggiornamenti delle applicazioni Microsoft che girano in ambienti Wine. Il 16 febbraio 2005, Ivan Leo Puoti scoprì che Microsoft setacciava il registro di Windows alla ricerca di chiavi relative a Wine per impedire l’utilizzo di Windows Update. Puoti scrisse: “Anche se questo è solo un primo tentativo, stanno tentando di discriminare gli utenti Wine. Se questo può essere accettabile per componenti del sistema operativo, questa è probabilmente una violazione delle leggi antitrust”. Il sistema Windows Genuine Advantage (WGA) controlla anch’esso l’esistenza di chiavi Wine nel registro. Le FAQ dichiarano esplicitamente che WGA non funzionerà sotto Wine perché non è un “genuine Windows”: “Quando il WGA trova WINE in esecuzione sul sistema, notificherà all’utente che stanno eseguendo un Windows non originale e non permetterà il download in quel sistema”. Alcuni sono riusciti a far funzionare il WGA in ambienti Wine. Windows Media Player 11 richiede WGA, quindi non può essere installato su sistemi con Wine. Di contro è stato rimosso il controllo WGA di Internet Explorer 7 ed è possibile installarlo con Wine.

Installazione
Prendiamo in esame la distribuzione più diffusa ossia Ubuntu. Dal menù principale andare in Applicazioni > Ubuntu software center. In alto a destra inserite nel campo ricerca la parola “Wine“. Selezionate la versione più recente da installare e cliccate sulla freccia che compare alla vostra destra, poi sul tasto “installa”. Aspettate che Ubuntu scarichi ed installi automaticamente Wine. Finita l’installazione trovate i collegamenti di Wine nel menù principale in Applicazioni >Wine. Da terminale la procedura è altrettanto semplice. Aprire il terminale dal menù principale Applicazioni > Accessori > Terminale. Scrivere o copiare il seguente comando nel terminale e poi tasto “Invio”:

 sudo apt-get install wine

Verrà richiesta la password e il programma sarà scaricato ed installato automaticamente.

Impostazioni per l’utilizzo
Nella scheda “Applications” potrà essere impostato il supporto per un sistema Windows specifico, modificando secondo le proprie esigenze il campo “Windows Version”. Nella scheda “Audio” è consigliato l’uso di un solo driver sonoro per volta. La scelta sarà fondamentalmente tra driver ALSA o driver OSS, la differenza sostanziale sta nella compatibilità con le applicazioni, infatti seppure il primo è più potente e permette l’uso di più fonti sonore contemporaneamente, risulta meno compatibile. Al contrario i driver OSS risultano essere maggiormente compatibili, tuttavia consentono l’uso del sonoro ad una singola applicazione alla volta. Le opzioni contenute nella sezione “DirectSound” sono specifiche per ogni applicazione lanciata con Wine, tuttavia in generale è consigliato disabilitare l’opzione “Driver Emulation” e impostare, nel campo Hardware Acceleration, l’opzione “Full”.

Nella scheda “Graphic”, tipicamente utilizzata per aumentare la compatibilità con i videogiochi, sarà possibile abilitare il supporto al “Vertex Shader” e al “Pixel Shader”. Inoltre in questa scheda sarà possibile assegnare un’area di lavoro virtuale all’interno della quale verranno avviati i programmi. Per identificare e abilitare l’uso delle varie unità disco presenti nel sistema spostarsi nella scheda “Drives” e fare clic su “Autodetect..”. Per aggiungere un’unità DVD o CD spostarsi nella scheda “Drives”, fare clic su “Add” e nella casella di testo “Path” digitare “/media/cdrom”. Per configurare il tipo di lettore fare clic su “Show Advanced”. Una volta terminate le modifiche fare clic su “OK”. Per modificare le impostazioni di un’applicazione andare nella scheda “Applications”, fare clic su “Add application…” e selezionare il file .exe al quale si desidera assegnare delle impostazioni personalizzate, dunque selezionare tale file dalla lista “Application Settings”, infine spostarsi nelle altre schede per impostare le configurazioni preferite per l’applicazione selezionata. E’ possibile inoltre modificare il registro di sistema. Esso consente di configurare al meglio l’hardware per le applicazioni emulate. Per avviarlo è sufficiente digitare il seguente comando in una finestra di terminale:

 wine regedit

Configurare Direct3D da registro
La chiave “Direct3D” contiene al suo interno i valori necessari per aumentare le prestazioni della propria scheda video. Una volta avviato il registro di sistema, scegliere HKEY_CURRENT_USER -> Software e selezionare “Wine”, quindi fare clic con il tasto destro e creare una nuova chiave, assegnandole il nome: “Direct3D”. Una volta creata tale chiave, selezionarla e spostare il puntatore del mouse nella parte destra della finestra, fare clic con il pulsante destro del mouse in un punto vuoto e selezionare Nuovo -> Valore stringa, ripetendo la medesima operazione per ognuna delle seguenti stringhe e assegnandone i valori:

1- Per DirectDrawRenderer scegliere tra:

  • gdi: prestazioni inferiori ma ampiamente supportata
  • opengl: prestazioni migliori, ma può causare incompatibilità

2- In UseGLSL impostare il valore enable.
3- In VideoMemorySize impostare la quantità effettiva di memoria RAM della propria scheda video.
4- Per OffscreenRenderingMode scegliere tra:

  • blackbuffer: predefinita per la resa a video
  • fbo: utilizza il framebuffer (solo per alcune schede nVidia)
  • pbuffer: utilizza il pixelbuffer

5- Per RenderTargetLockMode scegliere tra:

  • auto: attraverso un test iniziale opta per la scelta migliore
  • disable: disabilita l’opzione
  • readdraw: usa glReadPixels in lettura e glDrawPixels per disegnare
  • readtext: usa in lettura glReadPixels
  • texdraw: usa per disegnare glDrawPixels
  • textex: non utilizza glReadPixels e glDrawPixels

Alcune applicazioni richiedono che alla chiave Nonpower2Mode sia assegnato il valore repack. Terminate le modifiche, chiudere il registro e digitare il seguente comando nella finestra di terminale:

 wineprefixcreate

Questo sito utilizza cookie tecnici per il corretto funzionamento e cookie analitici per raccogliere statistiche d'uso in forma anonima e aggregata.
Leggi di più

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi