Free Penguin download - wine

32 bit deb per Ubuntu
deb per Debian
Rpm per Suse
Rpm per Fedora Core
Rpm per Mandriva
rpm per PCLinuxOS
Sorgenti
Sorgenti per Slackware
FreeBSD
PC-BSD
64 bit deb per Debian
Wine (Wine Is Not an Emulator, un acronimo ricorsivo, Wine non è un emulatore) è un software nato originariamente per GNU/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. 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). Come si evince dal nome, il progetto Wine non intende realizzare un emulatore.
La sua funzione primaria è l'implementazione di un layer di compatibilità per il maggior numero di applicazioni Windows fornendo il collegamento
alle API necessarie per il loro funzionamento.In questo senso, 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 (es. 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). 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, 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. 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
Screenshot
