[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]

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

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

Si tratta ancora di un progetto in fase di sviluppo (alpha) e di conseguenza, non è arrivato a un livello minimo accettabile, di funzionamento, e neanche di sicurezza.

Attualmente, WINE è in grado di fare funzionare (senza però alcuna sicurezza) solo alcuni programmi realizzati per MS-Windows 3.1.

Per poter utilizzare WINE allo stato in cui si trova in questo momento, sono ancora indispensabili alcuni componenti di MS-Windows 3.1 (sono essenzialmente delle librerie). Per questo motivo, 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/.

214.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 filesystem di tipo FAT, sarebbe consigliabile di riservare per questi una partizione di questo tipo. Tuttavia, potrebbe essere molto più affascinante l'idea di incorporare tutto all'interno del filesystem di GNU/Linux, e in questo senso sono realizzati gli esempi seguenti.

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

214.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\) occorre 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.

214.1.4 La configurazione di WINE

Il file /etc/wine.conf (ed eventualmente ~/winerc) 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;

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

214.1.6 Alcuni programmi di MS-Windows 3.1 che si lasciano eseguire

Alcuni programmi che fanno parte di MS-Windows possono essere molto utili. Per poterli utilizzare, è necessaria una licenza d'uso per MS-Windows.

Di seguito vengono elencati i file necessari a permettere il funzionamento di File manager e di Win help. Questi file devono essere collocati all'interno della directory C:\WINDOWS\.

214.1.7 Alcuni programmi che si lasciano eseguire

I programmi utili che funzionano con WINE senza troppi problemi sono pochi. Segue un breve elenco di applicazioni che possono essere usate utilmente e che appartengono alla categoria del software libero.

214.1.8 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 195.3.7.

214.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 ancora di un progetto in fase di sviluppo (alpha) e di conseguenza, non è arrivato a un livello minimo accettabile, di funzionamento, e neanche di sicurezza.

Attualmente, Twin è in grado di fare funzionare (senza però alcuna sicurezza) solo alcuni programmi realizzati per MS-Windows 3.1.

Si tratta di un progetto parallelo a WINE e, almeno per ora, i due si equivalgono. 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 Linux 1999.09.21 --- Copyright © 1997-1999 Daniele Giacomini --  daniele @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]