QEMU su Windows


È possibile installare QEMU su un sistema operativo Windows per virtualizzare altri sistemi operativi(GNU/Linux, *BDS, Mac…) ma anche sistemi operativi di Microsoft.

Sono richiesti oltre al pacchetto di QEMU per windows : MinGW-3.1.0-1.exe, MSYS-1.0.10.exe, msysDTK-1.0.1.exe, gcc-core-3.3.1-20030804-1.tar.gz, gcc-g++-3.3.1-20030804-1.tar.gz, w32api-3.8.tar.gz, mingw-runtime-3.9.tar.gz, SDL-1.2.11.tar.gz, directx-devel.tar.gz, nasm.exe, zlib-1.2.3.tar.gz

Note: usare la versione 3.9 del runtime si MinGW e non la versione 3.11

Installare MSYS-1.0.10.exe in una cartella comoda sull’hard disc. Al termine della procedura digitare “n”.

Installare msysDTK-1.0.1.exe nella stessa cartella del file precedente.

Installare MinGW-3.1.0-1.exe nella cartella mingw che sarà contenuta nella cartella di installazione dei due precedenti eseguibili.

Continua a leggere

Comparativa per le prestazioni di QEMU, KQEMU e KVM

Questo test serve per confrontare le prestazioni di QEMU, QEMU + KQEMU, QEMU + KVM
I numeri sono espressi in iterazioni al secondo.
Tabella di confronto – comparazione:

tabella delle prestazioni qemu kqemu kvm
Test eseguiti su un DELL Inspiron 6400, processore Intel Core Duo T2400 a 1,83 GHz, cache di secondo livello 2048 KB, 2 GB RAM.

QEMU è stato lanciato con le opzioni di default usando i test nbench presenti nell’immagine linux-0.2.img.bz disponibile sul sito ufficiale di QEMU.
Per QEMU + KQEMU si intende l’uso di QEMU 0.9.0 con il modulo acceleratore kqemu-1.3.0pre11.
La colonna nativo rappresenta l’esecuzione dei test sulla portatile a runlevel 3.
QEMU + KVM si intende l’uso del modulo KVM e di QEMU incluso in KVM (qemu-kvm).

Numeric sort: ordinamento di un array di interi a 32 bit.
String sort: ordinamento di un array di stringhe con lunghezza arbitraria.
Bitfield: esecuzione di funzioni per manipolazioni di bit
Floating-point emulated: programma che fa uso di floting-point.
Fourier coefficients: Una routine di analisi numerica per il calcolo delle approssimazioni delle serie.
Assignment algorithm: Un algoritmo di allocazione di task.
Huffman compression: Un algoritmo di compressione grafica e testuale.
IDEA encryption: un algoritmo di cifratura a blocchi.
Neural Net: Un simulatore di reti a retro-propagazione.
LU decomposition: Algoritmo per risolvere equazioni lineari.

Test nbench: http://www.tux.org/~mayer/linux/bmark.html

KVM e QEMU

KVM è un modulo per il kernel Linux, che serve per gestire la virtualizzazione su computer che possiedono processori con estensioni per la virtualizzazione (Intel VT e AMD-V). Se non si possiede un processore con tali estensioni non si può usare KVM.

Il modulo include un char driver che si occupa di dirigere il controllo dell’ I/O dal kernel ospitante al sistema ospite.

Il pacchetto KVM comprende una versione modificata di QEMU che fa uso di questo modulo.

QEMU modificato è molto più veloce e performante perché KVM fa uso delle estensioni per la virtualizzazione dei processori mentre l’originale emula lo ioctr.

Continua a leggere

Introduzione alle virtual machine

Le virtual machine servono per astrarre dell’hardware di un computer per poter eseguire più sistemi operativi sullo stesso computer.

Lanciando un sistema operativo virtuale pare che questo stia girando su un calcolatore fisico con una CPU e la sua memoria dedicata.

Principalmente le virtual machine vengono usate per usare più sistemi operativi sulla stessa macchina concorrentemente (contemporaneamente).

Siccome l’hardware presente sul computer è condiviso tra il sistema operativo ospitante e le macchine virtuali, si possono avere dei conflitti sull’accesso alla varie periferiche.

Una delle maggior difficoltà è la gestione dei dischi: per questo motivo ogni virtual machine deve avere un suo disco virtuale, talvolta chiamato minidisc; questo disco virtuale è costituito da un file presente sul computer ospitante, file che viene visto dalla macchina virtuale come spazio disco su cui memorizzare le informazioni.

Una virtual machine non è un computer fisico, ma offre hardware virtuale. Talvolta durante le fasi di I/O (scrittura su disco, accesso al file system) si possono ottenere prestazioni diverse da quelle che si otterrebbero su un calcolatore reale: le performance possono essere migliori (accesso al file system) oppure inferiori, quando si effettuano passaggi di modalità utente-sistema, in fase di interpretazione.

Per migliorare le prestazioni si può adoperare hardware ottimizzato per la virtualizzazione come certe CPU ( processori IBM, Intel basati su Core Duo…).

Uno dei vantaggi forniti dalle virtual machine è la sicurezza: una macchina virtuale è completamente isolata e indipendente; un imprevisto crash di una machine non comporta il crash anche delle altre tanto meno del sistema operativo ospitante, per tanto non è necessario riavviare il computer ma solo terminare la virtual machine e avviarla nuovamente.

Si possono condividere informazioni tra le macchine virtuali o condividendo il loro disco virtuale oppure creando una rete virtuale.

Una virtual machine è estremamente utile per provare programmi per esempio evitando di danneggiare, in caso di errore, il file system. Si possono provare programmi su più sistemi operativi in modo più rapido, basta avviare una virtual machine e installare il sistema operativo.

I più importanti software che permettono di virtualizzare sono: VMware, Xen, VirtualBox, Qemu, VirtualPC…

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/