[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 382.   Emulatori

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).

382.1   WINE: l'emulatore MS-Windows

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.

Per poter utilizzare WINE potrebbero essere necessari alcuni componenti di MS-Windows 3.1 (delle librerie). In tal caso, oltre che esserci bisogno di una copia di MS-Windows 3.1 è necessaria anche una licenza d'uso.

Lo sviluppo di WINE può essere seguito presso l'URI <http://www.linpro.no/wine/>.

382.1.1   Predisporre un ambiente adatto ai programmi per 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.

382.1.2   Un disco C: virtuale

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/.

382.1.3   La struttura essenziale del disco C: virtuale

Il disco C: virtuale dovrebbe contenere alcune directory che riproducono in pratica il classico ambiente DOS-Windows:

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.

382.1.4   La configurazione di WINE

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;

382.1.5   L'esecuzione di un programma

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

382.1.6   Implicazioni sulla gestione dei permessi

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.

382.2   Twin: un altro emulatore MS-Windows

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.

<http://www.willows.com>

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]