Sommario - Emanuele Giuliani Home Page

Transcript

Sommario - Emanuele Giuliani Home Page
emanuele giuliani – [email protected]
Bochs
http://bochs.sourceforge.net
Sommario
Presentazione .................................................................................................... - 2 Installazione ...................................................................................................... - 2 Opzioni di installazione ...........................................................................................................- 3 Compilazione ............................................................................................................................- 4 Installazione ..............................................................................................................................- 5 -
Configurazione della virtual machine.................................................................. - 5 File di log...................................................................................................................................- 6 Memoria.....................................................................................................................................- 7 Interfacce ...................................................................................................................................- 7 Dischi .........................................................................................................................................- 8 Floppy ..................................................................................................................................... - 8 ATA ........................................................................................................................................ - 8 Hard Disk ................................................................................................................................ - 9 Cdrom...................................................................................................................................... - 9 Configurazione di rete........................................................................................................... - 10 -
Esecuzione della virtual machine...................................................................... - 11 Mouse.......................................................................................................................................- 11 Floppy ......................................................................................................................................- 12 Cdrom.......................................................................................................................................- 12 User, Copy, Paste, Snapshot .................................................................................................- 12 Config.......................................................................................................................................- 12 Reset, Power............................................................................................................................- 12 -
Appendici........................................................................................................ - 13 Appendice A............................................................................................................................- 13 (IPS) .........................................................................................................................................- 13 Appendice B ............................................................................................................................- 13 (creare file immagine: bximage) .......................................................................................- 13 Appendice C ............................................................................................................................- 14 (creare file iso: mkisofs)....................................................................................................- 14 Appendice D............................................................................................................................- 14 (proprietà del disco: fdisk) ................................................................................................- 14 -
Riferimenti...................................................................................................... - 14 -1-
emanuele giuliani – [email protected]
Presentazione
Bochs è un emulatore software opensource di piattaforma Intel x86 scritto in C++. Ad oggi
l’ultima release del progetto è giunta alla versione 2.1.1 e può essere compilata per emulare
CPUs 386, 486, Pentium, Pentium Pro e AMD-64, compresi i relativi set particolari di
istruzioni quali MMX, SSE, SSE2 e 3DNow. La sostanziale differenza con il più famoso e
rinomato VMWare è proprio quella di emulare il sistema hardware interponendo una
macchi na virtuale tra il codice da eseguire e la reale CPU presente sul sistema aggravando
ovviamente i tempi di esecuzione ma rendendo la piattaforma Intel altamente portabile, il
rilascio del codice infatti permette di compilare Bochs su qualsiasi piattaforma. VMWare
invece, oltre a differire per essere un prodotto commerciale, sfrutta direttamente le risorse
del sistema che lo ospita, garantendo grandi risultati in termini di prestazione ed affidabilità
ma senza aver la possibilità di essere eseguito su piattaforme diverse da quella Intel.
Un possibile utilizzo di Bochs potrebbe essere per esempio quello di emulare una macchina
x86 su Unix, per installare un sistema operativo Windows e su di esso farci girare i relativi
software.
Le prove citate in questo tutorial sono state eseguite con Bochs 2.1.1 compilato ed installato
su Linux Knoppix 3.3, a sua volta installato su macchina virtuale VMWare su Windows XP
Home Edition. L’hardware utilizzato è un pc portatile AMD Athlon XP-Mobile 2500+ con
512 MB di Ram. Nota: nonostante Linux Knoppix abbia una versione di Bochs precaricata,
per completezza tratteremo comunque la fase di installazione .
Installazione
Una volta scaricata dalla sezione download del sito di Bochs l’ultima release stabile
platform-independent per Linux di tipo tar.gz, scompattiamola, per esempio, nella nostra
home. Accingiamoci ora ad effettuare le tre classiche operazioni di installazione, ovvero la
configurazione, la compilazione e l’installazione vera e propria. Lo script di configurazione
consente di impostare parecchie opzioni, per vederle tutte digitare
[ p r o m p t ] : . / c o n f i g u r e --h e l p
si consiglia di scrivere il comando di configurazione con le relative opzioni(che possono
anche essere molte) in un file, per esempio configure.run in modo che possa essere rivisto
e riutilizzato in futuro senza riscrivere tutto. Il mio configure.run contiene una riga come
questa:
. / c o n f i g u r e -- p r e f i x = / u s r / l o c a l / b o c h s - -e n a b l e - c p u-l e v e l = 6 - -e n a b l e c d r o m -–e n a b l e -f p u - -e n a b l e - 3 d n o w -- e n a b l e-m m x -- ena b l e -s s e = 2
--e n a b l e - s b 1 6 = l i n u x -- e n a b l e -p c i --e n a b l e -u s b
--e n a b l e - r e p e a t-s p e e d u p s --e n a b l e -a l l-o p t i m i z a t i o n s --e n a b l e -v b e
--e n a b l e - i g n o r e-b a d - m s r - -e n a b l e - n e 2 0 0 0 - -w i t h - x 1 1 - -w i t h -t e r m
Esistono files di configurazione già preparati per vari sistemi operativi, che si chiamano
.conf.* dove * è il nome del sistema operativo. Noi però ne faremo uno ex-novo.
-2-
emanuele giuliani – [email protected]
Opzioni di installazione
prefix:
default /usr/local. Indica la directory in cui si desidera che vengano installati gli
eseguibili e altri files per l’esecuzione. In realtà gli eseguibili e tutto l’occorrente per
utilizzare Bochs vengono creati anche nella stessa directory di configurazione.
enable-cpu-level=3|4|5|6:
default 5. Emula il rispettivo livello di cpu, ovvero 386, 486,
Pentium o Pentium Pro.
enable-cdrom:
default abilitato. Abilita l’utilizzo del cdrom.
enable-fpu:
abilita il supporto FPU (Floating-Point-Unit). Di default è abilitato ed è
obbligatorio abilitarlo per cpu di livello maggiore o uguale a 5 in quanto hanno sicuramente
il coprocessore matematico, mentre è opzionale per emulare 386 e 486.
enable-3dnow:
abilita il supporto di istruzioni 3dnow. Per abilitarlo deve essere abilitato
anche il supporto MMX.
enable-mmx:
abilita il supporto di istruzioni MMX. Di default è disabilitato e può essere
abilitato solo se è abilitato anche il supporto FPU e solo per cpu di livello maggiore o
uguale a 5.
enable-sse=no|1|2:
default disabilitato. Per disabilitarlo esplicitamente mettere ‘no’,
altrimenti per abilitare il livello 1 o 2 mettere il rispettivo numero. Per abilitarlo devono
essere abilitati anche i supporti FPU e MMX, e solo per cpu di livello maggiore o uguale a
6.
enable-sb16=dummy|win|linux|freebsd:
abilita l’emulazione della soundblaster16 per i
rispettivi sistemi. Immettendo dummy si abilita il supporto ma senza poter usare un
dispositivo di output (non servirà a molto quindi!). Di default è disabilitata ed abilitandola si
abilita automaticamente anche l’opzione enable-gameport che tutt’al più dovrà essere
disabilitata esplicitamente.
enable-pci, enable-usb:
abilitano i rispettivi supporti PCI e USB, di default sono
disabilitati. Al momento l’implementazione non è ancora finita quindi sarebbe meglio non
abilitarli nemmeno, perché vanno in errore.
enable-repeat-speedups:
abilita il supporto per l’incremento di prestazioni sulle operazioni
in memoria. Default disabilitato.
enable-all-optimizations:
default disabilitato. Abilita tutte le ottimizzazioni possibili che
possono dare un incremento di prestazioni.
enable-vbe:
abilita un’estensione del bios VGA, ma per poter usufruire dei benefici si dovrà
adoperare un bios VGA LGPL di versione almeno 0.3b, come lo vediamo dopo.
-3-
emanuele giuliani – [email protected]
enable-ignore-bad-msr:
default disabilitata. Se abilitata ignora l’eventuale errore che può
generare un istruzione che legge dal registro MSR. Si rivela molto utile nel caso si installi
Windows 2000, in quanto durante il boot può causare quest’errore in modo irreversibile.
Non è escluso però che questo tipo di errore si generi solo su hardware con cpu NON Intel.
enable-ne2000:
abilita l’emulazione della scheda di rete. Ha bisogno che sia implementato
un componente specifico per ogni sistema operativo.
with-x11:
compila l’interfaccia grafica x-windows
with-term:
compila l’interfaccia testuale
è possibile aggiungere o togliere anche altre opzioni ma quelle che posso raccomandare
sono le seguenti:
(per le prime quattro bisogna rispettare le regole che le relazionano l’una con l’altra decritte
sopra)
enable-cpu-level=3|4|5|6
enable-3dnow
enable-mmx
enable-sse=no|1|2
enable-ignore-bad-msr
enable-ne2000
se avete utilizzato il file
configurare è:
configure.run
per scrivere le opzioni il comando da lanciare per
[prompt]: ./configure.run
altrimenti
[prompt]: ./configure [opzioni]
Compilazione
Per compilare digitare
[prompt]: make
nel caso in cui quest’operazione dovesse fallire a seguito di errori, controllare che le opzioni
scelte non siano in contrapposizione tra loro, pulite e rilanciate la compilazione nel seguente
modo:
[ p r o m p t ] : m a k e a l l-c l e a n
[prompt]: make
-4-
emanuele giuliani – [email protected]
Installazione
Installiamo Bochs ed i files necessari per l’esecuzione nel seguente modo:
[prompt]: make install
Gli eseguibili di Bochs li troviamo sia nella directory di compilazione che nella directory
PREFIX indicata nel parametro opzionale (qualora non fosse stata indicata, la directory di
default è /usr/local ). Se si avvia Bochs dalla directory di installazione viene caricato il
file di configurazione [directory di installazione]/.bochsrc , altrimenti se si avvia
dalla directory indicata in PREFIX il file di configurazione utilizzato sarà preso dalla home
dell’utente, che per me è: /home/knoppix/.bochsrc .
La situazione tipica dovrebbe essere quella di installare Bochs con l’utente root, in modo
che ogni utente possa eseguire i files in PREFIX ma non vi possa salvare i file di
configurazione, che dovrà salvare invece indicando esplicitamente tutto il path della sua
home. Una volta installato Bochs quindi, sarebbe utile copiare il file di configurazione
.bochsrc dalla directory di installazione in ognuna delle home degli utenti, cambiandogli i
permessi in modo che ognuno possa leggere e scrivere il proprio.
Configurazione della virtual machine
Da qui in avanti resterà implicito che /usr/local/bochs/ è la mia directory PREFIX e che
/home/knoppix è la mia home, quindi se voi avete altri valori per queste due directory fate
le dovute sostituzioni.
Visto che molti parametri sono pressoché standard, partiamo dal file di configurazione di
default, che verrà caricato automaticamente. Portiamoci quindi nella directory
/usr/local/bochs/bin e digitiamo:
[prompt]: ./bochs
Bochs si eseguirà in modalità testo e caricherà il file di configurazione dalla mia home
/home/knoppix/.bochsrc (ovviamente solo se esiste), non fate caso se lui vi dice che ha
tentato di caricare il file bochsrc.txt , è un errore, questo è il file di log.
Il menù che ci troviamo di fronte è il seguente:
1) ripristina la configurazione di default che di default (scusate il gioco di parole) è
nulla, quindi setta tutti i parametri a null;
2) legge un file di configurazione;
3) edita un file di configurazione;
4) sal va un file di configurazione;
5) esegue la macchina virtuale con i parametri del file di configurazione caricato in quel
momento;
6) esce da Bochs.
-5-
emanuele giuliani – [email protected]
Per non sovrascrivere il file di configurazione standard, che potrebbe servirci in futuro se
qualcosa dovesse andare storto, salviamolo subito con un nome relativo alla macchina
virtuale che vogliamo simulare. Per esempio, io voglio emulare una macchina su cui
installerò Windows 95 quindi premerò 4 per salvare e chiamerò il file
/ h o m e / k n o p p i x / . w i n 9 5 (Attenzione: esplicitare tutto il path del file). D’ora in poi
quando avviamo Bochs possiamo caricare subito il file di configurazione che vogliamo, nel
seguente modo:
[ p r o m p t ] : . / b o c h s –f [ n o m e f i l e ]
nel mio caso:
[ p r o m p t ] : . / b o c h s –f / h o m e / k n o p p i x / . w i n 9 5
Entriamo nel menù 3 per editare il file, le scelte più importanti che ci servono per avviare la
macchina virtuale sono le seguenti:
1) nome del file di log;
2) opzioni per il file di log;
6)configurazione della memoria;
7) configurazione interfacce;
8) configurazione dischi.
Quando si dovranno effettuare degli inserimenti per indicare il valore del parametro, Bochs
indicherà tra parentesi quadre la scelta che di default sarà utilizzata preme ndo
semplicemente l’invio.
File di log
Diamo un nome significativo al file di log, e per convenienza riponiamolo nella nostra home
anche se questo file potrebbe essere creato nella directory degli eseguibili. Nel mio caso lo
chiamo: / h o m e / k n o p p i x / w i n 9 5 . t x t .
Le opzioni possibili sono le seguenti:
%t : scrive il tempo in cui avviene una certa azione partendo da zero dall’inizio dell’avvio
dell’emulazione, è composto da 11 cifre la cui unità di misura non è ben definita, potrebbe
essere il milionesimo di secondo o qualcosa lì intorno;
%i : è il numero di EIP (Emulated Istructions Per second) che in quel momento riesce a
supportare;
%e : indica l’evento generato dall’azione in corso, può essere ‘i’ per INFO, ‘d’ per
DEBUG, ‘p’ per PANIC ed ‘e’ per ERROR;
%d : descrive il dispositivo interessato dall’azione compiuta in quel momento, per esempio
CPU, HD, CDROM etc.
-6-
emanuele giuliani – [email protected]
Si può scegliere quali e quante opzioni dare e si possono separare da altri caratteri, gli spazi
però verranno tolti automaticamente. Io solitamente utilizzo la seguente stringa:
%t-%i-%e-%d-
Memoria
La scelta dei megabytes da emulare dipende ovviamente dal sistema operativo che si vuole
installare, ma ovviamente ciò non prescinde dalle risorse fisiche della macchina che stiamo
utilizzando. Per Windows 95, 32 MB dovrebbero essere più che sufficienti.
I BIOS non dovrebbe essere necessario cambiarli, le scelte standard sono:
/ u s r / l o c a l / b o c h s / s h a r e / b o c h s / V G A B I O S -e l p i n-2 . 4 0
/ u s r / l o c a l / b o c h s / s h a r e / b o c h s / B I O S -b o c h s -l a t e s t
Non so se è possibile caricare altri tipi di BIOS, se voleste provare sappiate che si tratta di
BIOS di 65 KB. Bochs fornisce BIOS anche per emulare sistemi multiprocessore.
Interfacce
Su Linux possiamo lasciare configurata l’interfaccia testuale (textconfig) di default e ‘x’
come libreria grafica. L’intervallo di update dell’interfaccia grafica (VGA Update Interval)
l’ho diminuito sensibilmente per non vedere il mouse che si muove a scatti, anche questo
parametro dipende dalla velocità fisica della macchina che stiamo utilizzando, ad ogni modo
io ho settato il valore a 20000. Il mouse possiamo anche non abilitarlo tanto sarà necessario
abilitarlo e disabilitarlo ogni qual volta vorremo entrare ed uscire dalla finestra di
emulazione. L’IPS (emulated Istruction Per Second) è un valore molto delicato da
configurare, sulla mia macchina (le cui caratteristiche sono descritte nella presentazione)
l’ho settato a 10 000 000 e penso di aver scelto una cifra abbastanza azzeccata. Un valore
troppo basso potrebbe rallentare eccessivamente il sistema, mentre un valore troppo alto
potrebbe rallentare o addirittura bloccare l’emulazione. Il manuale utente di Bochs fornisce
questi suggerimenti:
Velocità in MHz Piattaforma
IPS suggeriti
650Mhz
Athlon K-7 con Linux 2.4.x da 2 a 2.5 milioni
400Mhz
Pentium II con Linux 2.0.x
166Mhz
64bit Sparc con Solaris 2.x 0.75 milioni
200Mhz
Pentium con Linux 2.x
da 1 a 1.8 milioni
0.5 milioni
Fare riferimento all’appendice A per sapere come poter calcolare una valore appropriato.
-7-
emanuele giuliani – [email protected]
Dischi
In questa sezione ci preoccuperemo di configurare un floppy drive e di inserire un floppy
disk standard, configurare un canale ATA ed installare un HD ed un lettore CD. Inoltre
imposteremo il dispositivo di boot a nostro piacimento.
I dispositivi possono essere reali, oppure file immagine per floppy e hard disk ( *.img), o
file iso per cdrom (*.iso). Per come creare file immagine e file iso guardare rispettivamente
l’appendice B e C.
I dispositivi reali si indicheranno nello stesso modo in cui si indicano nel sistema operativo
sul quale sta girando Bochs. Per esempio su Linux il floppy è /dev/fd0 mentre su Windows
a: .
Floppy
La prima cosa che viene chiesta è il nome del dispositivo, nel nostro caso inseriamo
/dev/fd0 . Il tipo di floppy può essere scelto tra i seguenti: 160K , 180K , 320K , 360K , 720K ,
1.2M , 1.44M , 2.88M , per noi andrà benissimo un classico 1.44M . Per ultimo dobbiamo
scegliere se il floppy è inserito o meno, questa è un’operazione che si potrà effettuare anche
durante la simulazione, ma visto che ci siamo, scriviamo pure inserted ed inseriamo un
dischetto nell’unità floppy. Nel caso in cui volessimo rimuoverlo dovremmo scrivere
ejected . Nel caso invece in cui volessimo disattivare completamente l’unità floppy al posto
del nome del dispositivo inserire none .
ATA
Solitamente il primo canale ATA(canale 3) è già configurato, ma qualora volessimo
configurarne uno dei tre restanti(canali 6, 9 o 12), inseriamo yes quando ci viene chiesto se
abilitare il canale ( no per disabilitarlo), e per i successivi parametri possiamo mantenere
quelli di default limitandoci a premere invio, se dovessimo avere dei problemi possiamo
cambiare tali valori successivamente. Adesso abbiamo a disposizione un canale Master ed
uno Slave per ogni canale ATA abilitato.
-8-
emanuele giuliani – [email protected]
Hard Disk
Gli hard disk ed i cdrom si possono installare sui canali 4, 5, 7, 8, 10, 11, 13, 14.
La prima domanda è sempre la richiesta di abilitazione a cui risponderemo yes. Il secondo
parametro da inserire riguarda il tipo di dispositivo che si vuole installare, la scelta ricade su
disk o cdrom, in questo caso inseriamo disk. Inseriamo quindi il tipo di hard disk, le scelte
possibili sono:
flat, disco composto da un unico blocco già allocato, per esempio un file immagine;
concat,
sparse,
growing, disco le cui dimensioni possono crescere dinamicamente;
vmware3, tipo di persistenza utilizzato da VMWare, così che si possano condividere sistemi
operativi che girano con VMWare;
external,
dll,
undoable, disco con possibilità di effettuare il redo, come i databases;
volatile
Il nostro molto probabilmente sarà un disco flat. A questo punto dobbiamo inserire una
serie di proprietà del disco, quali il dispositivo (o nome del file immagine), il numero di
cilindri, di testine e di settori per traccia. Se avete creato un file immagine, alla creazione vi
saranno stati dati i valori di queste proprietà del disco, altrimenti per recuperare queste
informazioni da un disco reale riferirsi all’appendice D. Inserire eventualmente un nome di
modello del dispositivo, e successivamente il riconoscimento del BIOS, tra i valori possibili
(none, cmos, auto) noi scegliamo auto. Per ultimo, il translation type può assumere i valori
none, lba, large, rechs, auto , noi per semplicità anche qui scegliamo auto.
Cdrom
Le impostazioni per il cdrom sono molto simili a quelle appena viste per l’hard-disk. Le
informazioni richieste sono l’abilitazione del dispositivo per cui inseriamo yes; il tipo di
dispositivo, in questo caso cdrom; il nome del dispositivo che può essere o il nome fisico (ad
esempio /dev/cdrom ) oppure un file immagine *.iso, noi inseriamo il nome fisico del
dispositivo /dev/cdrom ; inseriamo inserted, il nome del modello, ed il BIOS detection per
noi va bene auto .
A questo punto l’opzione 16 ci consente di scegliere un dispositivo di boot tra floppy, disk
o cdrom ma non ci consente di scegliere un ordine di preferenza. In particolare posso dire
che il boot da cdrom dovrà essere confermato (come nei comuni bios) dalla pressione di un
tasto, altrimenti verrà cercato un sistema operativo sull’hard disk. Invece, se il boot da
floppy non va a buon fine, la macchina virtuale si blocca. Sarà quindi necessario spegnere
(la macchina virtuale!) e cambiare le impostazioni nel file di configurazione per farlo
bootare in altro modo.
-9-
emanuele giuliani – [email protected]
Rete
Bochs fino ad ora lo possiamo considerare un giochino molto bello e appassionante ed
anche in qualche modo utile. Possiamo installare un sistema operativo, possiamo utilizzarne
i programmi applicativi, ma ci viene difficile utilizzare tale sistema come un sistema reale
perché per ora l’interfacce pci e usb non sono supportate (anche se ancora per poco,
speriamo!). Questo implica che non si possono installare dispositivi esterni quali stampanti,
pen-drive, scanner, e che ancor peggio non è possibile utilizzare i dispositivi su interfacce
pci, inclusi tutti quelli che abbiamo già installato fisicamente nella nostra macchina.
Fortunatamente c’è qualcosa che ci viene in aiuto e che ci può dare accesso a diversi tipi di
risorsa, la scheda di rete. Una volta configurata la scheda di rete, infatti, non solo potremmo
navigare in Internet, con tutti i risvolti positivi che questo comporta, ma potremmo
condividere risorse pci e usb da un altro sistema(per esempio il sistema ospitante) rendendo
la nostra macchina virtuale un sistema completo o quasi.
La scheda di rete emulata da Bochs è una Novell 2000, ciò significa che sul sistema
operativo che installeremo se non viene riconosciuta automaticamente dovremo installare
manualmente questo tipo di scheda.
Configurazione di rete
Entriamo nel menù 11 per configurare la Novell 2000. Inanzitutto abilitiamola digitando yes
nel menù 1. L’indirizzo di I/O e l’IRQ lasciamoli così come sono (dovrebbero essere
rispettivamente 0x240 e 9), li cambieremo solo in caso dovessimo avere problemi di conflitti
o di malfunzionamento. Settiamo il MAC address , l’Ethernet module e l’Ethernet device
come da tabella seguente:
Piattaforma Mac address ethmod ethdev
FreeBSD
b0c420000000
fbsd
xl0
MacOSX
b0c420000000
fbsd
en0
Linux
b0c420000000
linux
eth0
Windows
b0c420000001
win32
MYCARD
tap
fefd00000001
tap
tap0
tuntap
fefd00000001
tuntap
/dev/net/tun0
Lo script si utilizza solo nel caso si setti una
nullo.
- 10 -
tuntap,
quindi nel nostro caso lo lasciamo
emanuele giuliani – [email protected]
Esecuzione della virtual machine
Prima di far partire l’emulazione, torniamo al menù principale e salviamo il file di
configurazione con tutte le modifiche che abbiamo apportato, probabilmente ci verrà chiesto
se sovrascrivere il file già esistente, rispondiamo yes per continuare. Ora l’opzione 5 (o
semplicemente premendo invio) ci consente di accendere la macchina virtuale. Nel caso in
cui voleste farla partire senza passare dalla fase di configurazione, ma direttamente dal
prompt del sistema, avviamo Bochs con l’opzione –q nel seguente modo:
[ p r o m p t ] : . / b o c h s –f / h o m e / k n o p p i x / . w i n 9 5 -q
Da qui in avanti se non vi sono problemi di configurazione, saremo come su una nuova
macchina e potremmo installare il sistema operativo che vogliamo.
Nota per il DOS: per installare sistemi Windows ci può essere bisogno di far bootare la
macchina con un dischetto DOS qualora il cd non sia bootable. Occorre però che il cdrom
sia visibile da DOS. Senza entrare nel merito di come si creano i files autoexec.bat e
config.sys , si consiglia di adoperare il famoso OAKCDROM.SYS come driver per il cdrom,
sicuramente l’avrete sentito nominare perchè è lo standard dei drivers per cdrom di sistemi
Windows.
Diamo uno sguardo alle icone sulla barra dell’applicazione. Quelle a sinistra ci
consentiranno di governare alcuni dispositivi mentre quelle a destra ci permetteranno di
cambiare alcune impostazioni durante la simulazione.
Mouse
Una prima cosa da sapere è come passare dal sistema emulato al sistema ospitante e
viceversa. Per farlo dobbiamo attivare il mouse per entrare nell’emulazione e disattivarlo
per uscirne. Il mouse è la quarta icona in alto a sinistra sulla barra della finestra, ma se il
mouse è attivato non possiamo cliccarci sopra perché siamo all’interno della finestra, quindi
per disattivarlo facciamo un clic sul tasto centrale del mouse, se non dovessimo averlo o se
non dovesse funzionare proviamo con un clic simultaneo sui tasti destro e sinistro. Per
entrare nella finestra possiamo anche usare lo stesso metodo al posto dell’icona.
- 11 -
emanuele giuliani – [email protected]
Floppy
Nel nostro caso particolare ci troviamo con un sistema operativo Linux ospitante ed un
sistema Windows ospite. Questo implica che quando usiamo un floppy con Windows
emulato, debba comunque essere montato. Il montaggio viene eseguito da Bochs quando gli
diciamo che il floppy è inserted, o, se usiamo l’interfaccia grafica, quando clicchiamo
sull’icona relativa (la X sull’icona indica che è smontato o ejected). Questo significa che se
vogliamo cambiare floppy in Windows non basta toglierlo e sostituirlo, ma dobbiamo prima
smontarlo, poi sostituirlo, ed in ultimo montarlo nuovamente.
Cdrom
Le stesse cose dette per il floppy valgono anche per il cdrom, utilizzabile graficamente
tramite la relativa icona.
User, Copy, Paste, Snapshot
Questi comandi non funzionano. Si può notare dal log file che User non è attivato, Copy e
Snapshot sono attivati ma le rispettive funzioni non sono implementate, mentre Paste
sembrerebbe funzionare ma incolla sempre 0 bytes perché Copy non funziona.
Config
Tramite quest’operazione possiamo arrestare e mettere in stand-by il sistema emulato ed
avere la possibilità di cambiare alcune impostazioni. Cliccando sull’icona Config infatti
appare un menù nella finestra da cui abbiamo eseguito Bochs che ci permette tra l’altro di
montare e smontare il floppy ed il cdrom come abbiamo già fatto in modo più semplice col
mouse. Notiamo però che i dispositivi non possono essere configurati se prima non
esistevano, sarebbe come collegare fisicamente un lettore cd a computer acceso!
Reset, Power
Gli ultimi due comandi che troviamo sono il Reset ed il Power che funzionano esattamente
come quelli reali dei calcolatori.
- 12 -
emanuele giuliani – [email protected]
Appendici
Appendice A
(IPS)
Per sapere quale possa essere un valore adatto come IPS, bisogna cambiare il flag
BX_SHOW_IPS a 1 (uno) nel file config.h . A questo punto configurate, compilate ed
installate e, una volta accesa la macchina virtuale, nel file di log potrete notare la presenza
di un numero che rappresenta gli IPS che la macchina riesce ad emulare in quel momento a
seconda dell’operazione che sta svolgendo. Dovreste fare una media approssimativa di tali
valori (che potrebbero differire anche di molto) ed inserirlo come valore di IPS nel file di
configurazione. Una volta effettuata quest’operazione potete risettare il flag a zero nel file
config.h, pulire la compilazione ( m a k e a l l - c l e a n ), riconfigurare, ricompilare e
reinstallare.
Appendice B
(creare file immagine: bximage)
Tra gli eseguibili di Bochs troviamo anche bximage che ci consente di creare file immagine
di floppy disk o di hard disk. Per avviarlo digitiamo
[prompt]: ./bximage
indicare se si vuole creare un’immagine per hard disk ( hd ) o per floppy disk ( fd ). Per
un’immagine per hard disk inseriamo il tipo di immagine ( va bene flat ), la capacità
compresa tra 1 e 32255 ed il nome comprensivo di tutto il path.
Se vogliamo un’immagine per floppy disk, scegliamo una delle misure predefinite ed il
nome del file.
Annotiamo i valori di cilindri, testine e settori per traccia che ci serviranno durante la
configurazione dei dispositivi con Bochs.
- 13 -
emanuele giuliani – [email protected]
Appendice C
(creare file iso: mkisofs)
E’ possibile creare file di tipo iso con il comando mkisofs, nel seguente modo:
[ p r o m p t ] : m k i s o f s –o [ f i l e d i o u t p u t ] [ f i l e d i i n p u t ]
dove [ f i l e d i o u t p u t ] sarà presumibilmente un file .iso mentre
può essere una qualsiasi parte del filesystem montata, file o directory.
[file di input]
Appendice D
(proprietà del disco: fdisk)
Digitare
[prompt]: fdisk – l
per leggere le proprietà dei dispositivi presenti.
Riferimenti
1) http://bochs.sourceforge.net : il sito di Bochs
2) http://bochs.sourceforge.net/doc/docbook/user/book1.html : in particolare la pagina
dello User Manual
- 14 -