Wine
Da Wikipedia, l'enciclopedia libera.
Wine | |
---|---|
Sviluppatore | Team di Wine |
Ultima versione | 0.9.26 / 24 novembre 2006 |
OS | Linux, POSIX |
Genere | Programmazione |
Licenza | GNU GPL |
Sito web | http://www.winehq.org/ |
Wine (Wine Is Not an Emulator, un acronimo ricorsivo, Wine non è un emulatore) è un software nato originariamente per Linux, poi esteso ad altri sistemi operativi, con lo scopo di permettere il funzionamento dei programmi sviluppati per il sistema operativo Microsoft Windows.
Il progetto è stato difficile e dispersivo per gli sviluppatori, solo in parte per l'incompleta o incorretta documentazione delle Win32 API. La maggior parte delle funzioni di Win32 sono documentate, ma alcuni ambiti, come i formati dei file e i protocolli, non hanno una descrizione ufficiale da parte di Microsoft. Lo stesso vale per funzioni di basso livello e per oscuri bug che dovrebbero essere duplicati precisamente affinché le applicazioni si comportino come previsto. Gli sviluppatori di Wine hanno quindi dovuto ricorrere spesso al reverse engineering.
Indice |
[modifica] Funzionamento
Come si evince dal nome, il progetto Wine non intende realizzare un emulatore. La sua funzione primaria è quella di realizzare un layer di compatibilità per il maggior numero di applicazioni Windows fornendo le API necessarie per il loro funzionamento. In questo senso, Wine non emula nessuna architettura o sistema operativo, bensì fornisce una estensione al supporto a tempo di esecuzione dei programmi che richiedono specifiche funzioni di Windows. Per fare ciò Wine si appoggia al sistema X11, 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).
[modifica] Architettura
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 sottinsieme di librerie specifiche del programma ed alcune librerie di sistema, le quali 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. A oggi nessun tipo di integrazione diretta con i livelli più bassi del sistema (come una integrazione modulare al kernel) sono previsti, specie per evitare limitazioni che eviterebbero il funzionamento di Wine su differenti piattaforme.
[modifica] Modalità d'uso
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
[modifica] Progetti Correlati
Gran parte del codice di Wine viene tuttora impiegato per lo sviluppo di ReactOS, un sistema operativo il cui scopo è fornire piena compatibilità con le applicazioni scritte per piattaforma Windows. Si tratta, questo, di un progetto completamente slegato dai vari sistemi Unix-like, con kernel ed una propria strutturazione. L'inclusione in ReactOS del codice di Wine, e la continua collaborazione dei gruppi dei due progetti, ha dato una spinta decisa in avanti al sistema operativo che ha beneficiato del lavoro iniziato diverso tempo prima dagli sviluppatori di Wine.
Il codice di Wine è anche la base dalla quale sono nati due progetti commerciali: CrossOver Office, il cui scopo è permettere l'utilizzo dei maggiori programmi applicativi da uffico per Windows su Linux, e Cedega (conosciuto negli anni passati come WineX, ora cedega e' giunto alla versione 5.0) che cerca di supportare nel modo più efficiente possibile una gran quantità di videogiochi sviluppati utilizzando sia liberie grafiche OpenGL che DirectX (e' possibile trovare una lista dei giochi supportati, anche solo in parte, su transgaming.org - da notare che le wiki sono praticamente sempre mantenute da giocatori)
Altri progetti che utilizzano Wine sono:
- Darwine, un port delle librerie Wine al sistema operativo Darwin e al Mac OS X. Darwine all'inizio compilava i sorgenti Windows ai binari Mach-O. Con l'avvento dell'architettura Apple-Intel, Darwine iniziò ad eseguire i binari Win32.
- BeWine, un port di Wine per BeOS, Haiku e simili.
- Odin, un progetto per OS/2.
- E/OS, un progetto ambizioso per eseguire un qualsiasi programma progettato per un qualsiasi sistema operativo senza bisogno di installare nessun sistema operativo.
- Rewind, un progetto MIT, ora defunto
[modifica] La risposta di Microsoft a Wine
Microsoft non ha mai reso dichiarazioni pubbliche su Wine. Comunque Microsoft Update bloccherà eventuali aggiornamenti delle applicazioni Microsoft che girano in ambienti Wine. Il 16 febbraio 2005, Ivan Leo Puoti scoprì che Microsoft cercava nel registro di Windows alla ricerca di chiavi relative a Wine e questo impediva 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 anti trust."[1]
Il sistema Windows Genuine Advantage (WGA) controlla anch'egli 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".[2] Alcuni sono riusciti a far funzionare il WGA in ambienti Wine. [3]
La versione beta di Microsoft Internet Explorer 7 richiede WGA, quindi non può essere installato sui sistemi con Wine.
[modifica] Riferimenti
- ↑ Puoti, Ivan Leo (2005). "Microsoft genuine alla ricerca di Wine." (mailing list) URL verificata in data 2006-01-23.
- ↑ . "FAQ Genuine Windows." Microsoft Corporation{{{editore}}}. URL verificata in data 2006-01-30.
- ↑ . "WGA con Wine."
[modifica] Collegamenti esterni
- (EN) Sito web ufficiale
- (EN) appdb.winehq.org Database che fornisce un elenco di applicazioni funzionanti
- (EN) frankscorner.org Sito contente informazioni su come installare alcuni software con wine
- (EN) Winetools
- (EN) Sidenet