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 -