Virtual machine: più sistemi operativi contemporaneamente

Una virtual machine oppure macchina virtuale è un programma che emula un computer, così è possibile utilizzare più sistemi operativi contemporaneamente.

Sul sistema operativo ospitante (host) viene avviato una o più volte il programma emulatore in base a quante macchine virtuali (guest) vogliamo adoperare o possiamo adoperare.

La macchina virtuale sfrutta le risorse hardware del computer ospitante quindi è meglio disporre di hardware potente, più virtual machine sono attivate nello stesso momento e maggiori dovranno essere le risorse del computer.

  • Perché emulare altri sistemi operativi su un singolo computer e usare macchine virtuali?

Si possono adoperare programmi che non funzionano su certe architetture o non disponibili per alcuni sistemi operativi. E’ possibile emulare architetture differenti, es: host = PowerPC (PPC), guest = i386. Per cui possiamo usare MAC OS 9 su un computer con processore un Pentium 4 o un Athlon XP o far funzionare Windows 98 su un computer che ha molta RAM (è noto che windows98 non va con più di 512 MB).

Le macchine virtuali possono essere usate come piattaforme di testing per applicazioni, senza dover intaccare la configurazione del sistema che stiamo usando. Es: installazione di programmi di prova o in beta-testing oppure per provare nuovi sistemi operativi.

Alcuni web hoster offrono virtual machine ai proprietari di siti internet per risparmiare sull’hardware fisico e quindi tener bassi i prezzi.

  • Che differenza c’è tra Wine e una virtual machine?

Wine è un convertitore di chiamate, ovvero traduce le “funzioni” native di un sistema operativo in funzioni compatibili con il sistema operativo che si sta usando; anche se sarebbe meglio dire che traduce le chiamate di sistema.

Wine è in grado di far funzionare alcuni programmi su un sistema operativo diverso, mentre una macchina virtuale gestisce un intero sistema operativo, quindi molti programmi e processi in esecuzione.

Tra tutti i programmi che creano macchine virtuali c’è QEMU, che può funzionare anche in modalità “user mode” ovvero come Wine.

  • Perché scegliere QEMU?

QEMU è gratuito, oltre ad aderire alla licenza GNU GPL, non è fino ad ora più veloce di alcuni programmi a pagamento come VMware o VirtualPc però si è dimostrato più affidabile e i file immagine di questi prodotti possono essere usati da QEMU.

QEMU emulazione sistemi operativi

QEMU è un software di emulazione (una virtual machine) in grado di far girare moltissimi sistemi operativi. E’ possibile emulare Windows sotto Linux (è installabile anche su Windows o Mac OS X), così si possono usare dei programmi che non sono disponibili per la piattaforma in uso. QEMU è distribuito con licenza GNU GPL, per cui è usabile liberamente e gratuitamente.

Sito ufficiale: http://www.qemu.org/

  • INSTALLAZIONE

Dal sito ufficiale, se usiamo Linux, scarichiamo i sorgenti del pacchetto, oppure scarichiamo i file binari già precompilati per piattaforma i386 (Pentium, Athlon…, non 64 bit) che sono più facili da adoperare.

Questi ultimi vanno scompattati nella directory radice del sistema operativo.

Supponiamo di voler installare sulla macchina virtuale un’altra distro di Linux (possiamo anche installare una versione di Windows).

Prima di tutto dobbiamo creare un file che verrà visto dal sistema operativo emulato come il disco rigido (dove verranno salvati tutti i file di installazione e i programmi). Sostituiamo user con il nostro nome utente.

$ qemu-img create -f qcow2 /home/user/immagine.img 3000M

Abbiamo creato un file di nome immagine.img che potrà avere dimensione massima 3 GB e si troverà nella nostra home. Il file all’inizio sarà vuoto mentre con l’uso della virtual machine si riempirà . Teniamo presente che potremmo disporre di soli 3 GB e non di più spazio, quindi vediamo di essere abbondanti.

Ora inseriamo il cd o dvd della distribuzione nel lettore e lanciamo QEMU così:

$ qemu -hda /home/user/immagine.img -cdrom /dev/cdrom -boot d

Così QEMU avvierà il supporto ottico come se stessimo facendo un boot della macchina e ci permetterà di installare il sistema operativo che desideriamo.

Ricordiamoci di uscire dal sistema operativo emulato, spegnendo correttamente la macchina come se usassimo il computer normalmente.

Se desideriamo uscire dalla finestra di QEMU per tornare a usare il mouse nel nostro sistema operativo ospitante premiamo i tasti ctrl+alt.

Per avviare QEMU senza fare il boot da supporto ottico nuovamente, digitiamo alla shell:

$ qemu /home/user/immagine.img

  • MACCHINA EMULATA DA QEMU

QEMU fornisce al nostro sistema operativo virtuale il seguente hardware:

i440FX host PCI bridge and PIIX3 PCI to ISA bridge

Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).

PS/2 mouse and keyboard

2 PCI IDE interfaces with hard disk and CD-ROM support

Floppy disk

NE2000 PCI network adapters

Serial ports

Creative SoundBlaster 16 sound card

ENSONIQ AudioPCI ES1370 sound card

Adlib(OPL2) – Yamaha YM3812 compatible chip

PCI UHCI USB controller and a virtual USB hub

Perciò se avete una scheda video, che ne so, ATI RADEON, il sistema operativo emulato non vedrà la vostra scheda grafica della ATI, ma rileverà una scheda CIRRUS.

  • MIGLIORARE L’USO DI QEMU

QEMU lanciato da shell così:

$ qemu /home/user/immagine.img

fornirà al sistema ospite una dotazione di soli 128 MB di RAM, che possono essere un collo di bottiglia per gli ultimi sistemi operativi. Possiamo aumentare la ram vista dal sistema aggiungendo un parametro a QEMU.

$ qemu -m 256 /home/user/immagine.img

Ora il sistema potrà disporre di 256 MB di RAM. Non esageriamo comunque con la RAM e teniamo presente quanta RAM abbiamo realmente sul nostro computer.

  • MIGLIORARE LE PRESTAZIONI DI QEMU

Per migliorare le prestazioni di QEMU possiamo installare KQEMU.

KQEMU è un acceleratore per QEMU. Funziona solo su architetture x86 e x86_64, cioè sui Pentium, Athlon, Celeron, Sempron, Turion, Duron, Core anche a 64 bit quando si emulano macchine virtuali che utilizzano le medesime architetture, per esempio, se voglio emulare su Linux una virtual machine che ospita Windows XP.

Per installarlo scarichiamo il pacchetto dal sito di QEMU e scompattiamolo nella directory tmp, poi eseguiamo ./configure, make e make install.

Eseguiamo da utente root:

# mknod /dev/kqemu c 250 0

# chmod 666 /dev/kqemu

Ora integriamo il modulo nel kernel, ogni volta che vogliamo adoperare KQEMU, prima di avviare QEMU:

# modprobe kqemu

  • Ho installato il sistema operativo, ora come faccio a collegarmi a Internet?

Non c’è nulla da fare, sul sistema operativo ospitante deve essere attivo il collegamento, per esempio via wireless, mentre sulla macchina guest basta solo aprire un browser.

  • LINK UTILI

Sito di QEMU http://www.qemu.org/

QEMU su windows http://www.h7.dion.ne.jp/~qemu-win/

8 pensieri riguardo “Virtual machine: più sistemi operativi contemporaneamente

  1. Elisabetta ha detto:

    ciao! ho provato a fare quello che hai detto ma dopo il comando qemu -hda /home/elisabetta/immagine.img -cdrom /dev/cdrom -boot d
    mi dice che non riesce a aprire il disk image : qemu: could not open disk image /home/elisabetta/immagine.img … come devo fare? potresti aiutarmi? ti ringrazio
    Elisabetta

  2. valent ha detto:

    O il file immagine è danneggiato oppure è di proprietà di un altro utente che non ha autorizzato la lettura o scrittura agli altri. Se hai creato l’immagine come root e hai avviato qemu come utente dovresti cambiare i permessi di accesso al file.

  3. Fede ha detto:

    ciao, quell’errore te la quando ancora non hai creato il disco.

    quindi prima devi fare qemu-img create -f qcow2 /home/user/immagine.img 3000M ricordi??? 🙂

  4. christian g. ha detto:

    hello, i got the same message:”qemu: could not open disk image” and tried the >>create -f qcow2<>file diskimagename<<.
    christian

  5. valent ha detto:

    Have you select a image size?
    $ qemu-img create -f disc.img 5G
    where 5G stays for five gigabyte.

  6. r. ha detto:

    il sito ufficiale non e’ piu’ http://fabrice.bellard.free.fr ma http://www.nongnu.org/qemu/

  7. valent ha detto:

    Ti ringrazio per la segnalazione.

I commenti sono chiusi.

linux

Articolo successivo

Clam AntiVirus