QEMU

software emulatore
Versione del 17 dic 2006 alle 16:37 di 87.6.169.74 (discussione) (Nuovo URL)

Template:Infobox Software

Qemu è un software che implementa un particolare sistema di emulazione che permette di ottenere un'architettura nuova e disgiunta in un'altra che si occuperà di ospitarla; Qemu è stato ideato ed è coordinato da Fabrice Bellard.

Questo software è conosciuto grazie alla sua velocità di emulazione ottenuta grazie alla tecnica della traduzione dinamica. È simile a Bochs, VMWare Workstation, Virtual PC ma più veloce nell'emulazione delle architetture x86.

Qemu è formato da due parti: la prima si occupa dell'emulazione vera e propria (convertire, ad esempio, le istruzioni da 32 bit a 64) permettendo quindi di eseguire programmi compilati su architetture diverse; la seconda parte è l'emulatore di sistema: utilizzando la prima parte, è capace di creare un nuovo sistema completamente separato da quello ospitante (i file, quindi, sono separati).

Storia

Qemu, inizialmente, era un progetto che si prefiggeva di emulare solo il microprocessore x86 su un sistema GNU/Linux. L'intento iniziale era di eseguire Wine anche sulle macchine con architetture diverse dall'x86 (ad esempio i PowerPC, l'architettura dei Macintosh). Lo scopo fu raggiunto e si constatò che la tecnica della traduzione dinamica era più che valida; si iniziò, quindi, a cercare di creare un intero sistema di virtualizzazione per ottenere una macchina virtuale equiparabile ad un sistema x86 completo. Il risultato ottenuto fu più che positivo.

Stato attuale

Tuttora, Qemu è in grado di simulare sistemi x86, AMD64, [[PowerPC], MIPS e ARM.
Bellard ideò anche un modulo per i kernel Linux (KQemu) capace di aumentare notevolmente le prestazioni della macchina simulata; il codice è disponibile, ma i termini di distribuzione sono quelli di un programma closed source. Qemu ha trovato adesioni nella comunità dei programmatori che si occupano di migliorarlo; tra i vari progetti esistenti, risalta quello di FreeOsZoo che si occupano di fornire immagini dei dischi di Qemu dei più noti sistemi operativi liberi.

Caratteristiche

  • Può emulare PC IA-32 (x86), AMD64, MIPS R4000, Sun SPARC sun4m, Sun SPARC sun4u, schede di sviluppo ARM, schede SH4 SHIX e architetture PowerPC (PReP - Power Macintosh)
  • Tecnologia Copy-On-Write: puoi assegnare un drive virtuale grande svariati gigabytes, l'immagine sul disco sarà grande solamente lo spazio necessario
  • Gestione dei stati. Si può salvare lo stato del sistema ospite e scrivere i cambiamente su un file a parte e successivamente ritornare a quel stato
  • Possibilità di eseguire binari Linux per altre architetture
  • Emulazione di scheda di rete virtuale
  • Supporto SMP
  • Usando il software, "libero ma chiuso", kqemu l'emulazione sarà più veloce, ma ancora non allo stesso livello di VMWare
  • Gli strumenti della linea di comando permettono di controllare completamente l'emulazione
  • Controllo remoto tramite il server VNC integrato

Difetti di QEMU

  • Supporto parziale per Microsoft Windows e altri sistemi operativi
  • Nessun supporto per le applicazioni multimediali: viene emulato una scheda grafica Cirrus Logic

Esempi di utilizzo

Per creare un disco virtuale di 500MB in Qemu utilizzando qcow:

qemu-img create -f qcow c.img 500M

l'opzione -f del comando serve a specificare il tipo di formato del disco virtuale. Sono supportati i tipi raw, qcow, cow, vmdk e cloop.


Il comando sottostante si occuperà di far partire l'emulazione si una macchina con 128MB di Ram utilizzando il disco c.img creato con il precedente comando e farà il boot dall'immagine del CD salvata nel file linux.iso. La macchina emulata avrà il supporto audio e l'ora sarà sincronizzata con quella del pc host.

qemu -hda c.img -cdrom linux.iso -boot d -m 128 -soundhw sb16 -localtime


Per utilizzare una macchina virtuale con 64Mb di Ram avente come CDRom quello del sistema ospitante, di dovrà digitare

qemu -hda c.img -cdrom /dev/cdrom -boot c -m 64 -full-screen

Quando la macchina virtuale è avviata, con la combinazione Control-Alt-2 si accederà alla console di controllo di Qemu per effettuare alcune operazioni semplici (caricare un nuovo discoimmagine, riavviarlo, sospenderlo o uscire dal programma). Con la combinazione Control-Alt-1, invece, si ritornerà alla macchina emulata.

Collegamenti esterni