# QEMU

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

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 è distribuito con licenza GPL.

## Caratteristiche

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

Per creare un disco virtuale di 500MB in Qemu utilizzando qcow:
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.
Per utilizzare una macchina virtuale con 64Mb di Ram avente come CDRom quello del sistema ospitante, si dovrà digitare
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.