[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
Su una piattaforma GNU/Linux è possibile utilizzare programmi realizzati per altri sistemi operativi, attraverso vari tipi di emulatori. In generale, questa emulazione può avvenire in due modi fondamentali: riproducendo il funzionamento dell'hardware di un tipo di elaboratore, oppure riproducendo interamente il funzionamento di un altro sistema operativo. La prima delle due scelte implica l'utilizzo successivo di un sistema operativo in grado di utilizzare l'emulatore hardware e con il quale si possono poi utilizzare altri programmi. La seconda, permette di utilizzare direttamente i programmi adatti al tipo di sistema operativo che viene emulato.
Le implicazioni sulla differenza tra l'emulazione dell'hardware e quella di un sistema operativo sono sia tecniche che giuridiche. Se si emula l'hardware occorre poi procurarsi il sistema operativo e soprattutto la licenza di questo. Se si emula l'hardware spesso è necessario copiare da qualche parte il contenuto del firmware (programma su ROM) utilizzato nell'elaboratore da emulare. Ma questo, nella maggior parte dei casi, è un'azione illegale (anche se non si sente parlare di cause contro azioni di questo genere).
WINE è un programma che permette di eseguire programmi realizzati per MS-Windows all'interno dell'ambiente grafico X. WINE è quindi un emulatore di MS-Windows.
Nel momento in cui si scriveva questo capitolo, WINE era in grado di fare funzionare (senza però alcuna sicurezza) solo alcuni programmi realizzati per MS-Windows 3.1.
Lo sviluppo di WINE può essere seguito presso l'URI <http://www.linpro.no/wine/>.
Dal momento che i programmi realizzati per MS-Windows sono stati pensati per lo più per funzionare su un file system di tipo FAT, sarebbe consigliabile di riservare loro una partizione di questo tipo. Tuttavia, potrebbe essere molto più affascinante l'idea di incorporare tutto all'interno del file system di GNU/Linux e in questo senso sono realizzati gli esempi seguenti.
In questa fase conviene preparare una directory che servirà per definire l'inizio (la radice) del disco C:
virtuale utilizzato dai programmi per MS-Windows. Stabiliamo che questo sia /var/emul/windows/
. Da questo punto in poi, C:\
è equivalente a /var/emul/windows/
.
Il disco C:
virtuale dovrebbe contenere alcune directory che riproducono in pratica il classico ambiente DOS-Windows:
C:\TEMP\
equivalente a /var/emul/windows/temp/
;
C:\WINDOWS\
equivalente a /var/emul/windows/windows/
;
C:\WINDOWS\SYSTEM\
equivalente a /var/emul/windows/windows/system/
.
Per evitare la proliferazione di directory temporanee, è possibile utilizzare al posto di /var/emul/windows/temp/
un collegamento simbolico che punti a /tmp/
.
#
ln -s /tmp /var/emul/windows/temp
Una volta preparata la struttura essenziale occorre inserire alcuni file.
All'interno di /var/emul/windows/windows/
(C:\WINDOWS\
) si devono preparare alcuni file .INI
vuoti. Si tratta di WIN.INI
e di SYSTEM.INI
.
#
touch /var/emul/windows/windows/win.ini
#
touch /var/emul/windows/windows/system.ini
All'interno di /var/emul/windows/windows/system/
(C:\WINDOWS\SYSTEM\
) potrebbe essere necessario collocare alcuni file di libreria provenienti da una versione originale di MS-Windows 3.1 (come già spiegato, questo implica la necessità di avere una licenza d'uso per MS-Windows 3.1). Probabilmente, i file seguenti sono indispensabili.
COMMDLG.DLL
CTL3DV2.DLL
DDEML.DLL
LZEXPAND.DLL
OLECLI.DLL
VBRUN300.DLL
Il file /etc/wine.conf
deve essere predisposto prima di poter eseguire alcuna emulazione. L'esempio seguente fa riferimento alla struttura di directory vista in precedenza. In particolare, all'interno di GNU/Linux, il dischetto viene montato nella directory /mnt/a/
.
[Drive A] Path=/mnt/a Type=floppy [Drive C] Path=/var/emul/windows Label=ext2fs [Drive D] Path=${HOME} [wine] windows=c:\windows system=c:\windows\system temp=c:\temp path=c:\windows;c:\windows\system symboltablefile=./wine.sym [serialports] com1=/dev/cua1 com2=/dev/cua2 [parallelports] lpt1=/dev/lp1 [spy] ;File=CON ;File=spy.log Exclude=WM_TIMER;WM_SETCURSOR;WM_MOUSEMOVE;WM_NCHITTEST; Include=WM_COMMAND;
Per mettere in esecuzione un programma attraverso WINE è necessario avviare prima l'ambiente grafico (di solito attraverso startx), quindi aprire una finestra di terminale e da lì eseguire il comando seguente:
wine [opzioni] programma_completo_di_percorso
Per esempio, per avviare il file PFE.EXE che si trova all'interno di C:\PFE\
si eseguirà:
$
wine "c:\pfe\pfe"
oppure la riga seguente:
$
wine /var/emul/windows/pfe/pfe.exe
WINE si comporta in maniera analoga a DOSEMU per quanto riguarda il problema della gestione dei permessi dei file e delle directory. Valgono quindi le stesse considerazioni fatte a questo proposito nella sezione 343.3.7.
Twin, ovvero Willows Twin Libraries, è un sistema di emulazione che permette di eseguire programmi realizzati per MS-Windows all'interno dell'ambiente grafico X.
Si tratta di un progetto parallelo a WINE; Twin, in particolare, ha il vantaggio di fornire al programma utilizzato un livello di astrazione superiore rispetto a quanto fatto da WINE, per cui i programmi funzionano in finestre normali di X. La cosa più importante è che non serve alcun componente originale di MS-Windows: tutte le librerie principali sono emulate.
Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini --daniele @ swlibero.org
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome emulatori.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]