QEMU

Da Wikipedia, l'enciclopedia libera.
QEMU

Screenshot di QEMU
QEMU fa girare Knoppix su Mandrakelinux
Sviluppatore Fabrice Bellard
Ultima versione 1.6.2 (16 dicembre 2013)
Sistema operativo Unix-like
Linguaggio
Genere Emulatore
Licenza GPL/LGPL
(Licenza libera)
Sito web www.qemu.org

Qemu [abbreviazione di Quick EMUlator] è un software che implementa un particolare sistema di emulazione che permette di ottenere un'architettura informatica nuova e disgiunta in un'altra che si occuperà di ospitarla. È stato ideato da Fabrice Bellard, che ne coordina lo sviluppo.

Storia[modifica | modifica sorgente]

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.

Al momento è in grado di emulare 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 erano quelli di un programma closed source.

Dal 6 febbraio 2007, con la release 1.3.0pre11, anche questo modulo è rilasciato con licenza GPL.

Caratteristiche[modifica | modifica sorgente]

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 bit) 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).

Tra le caratteristiche principali possiamo annoverare:

Emulazione PC IA-32 (x86), AMD64, MIPS R4000, Sun SPARC sun4m e 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 degli stati. Si può salvare lo stato del sistema ospite e scrivere i cambiamenti su un file a parte e successivamente ritornare a quello stato
  • Possibilità di eseguire binari Linux per altre architetture
  • Emulazione di scheda di rete virtuale
  • Supporto SMP
  • Usando il software libero kqemu l'emulazione sarà più veloce, ma ancora non allo stesso livello di VMWare
  • Gli strumenti della riga di comando permettono di controllare completamente l'emulazione
  • Controllo remoto tramite il server VNC integrato
  • Supporto all'emulazione via kernel KVM in Linux
  • Supporto USB, ma non per i dispositivi streaming come le videocamere

Tuttavia attualmente non è in grado di offrire:

  • Nessun supporto per le applicazioni multimediali: viene emulata una scheda grafica Cirrus Logic
  • Supporto per le videocamere USB e altri dispositivi di streaming

Esempi di utilizzo[modifica | modifica sorgente]

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, qcow2, qcow, cow, vmdk e cloop.

Il comando sottostante si occuperà di far partire l'emulazione di 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, si 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.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]