QEMU (Italiano)

From ArchWiki
Jump to navigation Jump to search

Secondo la pagina informativa di QEMU, "QEMU è un emulatore e virtualizzatore di macchine generico e open source".

Quando viene usato come emulatore, QEMU può eseguire sistemi operativi e programmi compilati per un'architettura (ad esempio una scheda ARM) su un'architettura diversa (ad esempio il vostro PC x86). Utilizzando la traduzione dinamica, raggiunge eccellenti prestazioni.

QEMU può utilizzare altri hypervisor come [Xen] o [KVM] per utilizzare le estensioni della CPU per la virtualizzazione (HVM). Quando viene utilizzato come virtualizzatore, QEMU raggiunge prestazioni quasi native eseguendo il codice del guest direttamente sulla CPU host.

Installazione

Installare il pacchetto qemu (o qemu-headless per la versione senza interfaccia grafica) e i seguenti pacchetti opzionali per le proprie esigenze:

In alternativa, qemu-user-staticAUR esiste come variante usermode e static.

Varianti di QEMU

QEMU è offerto in diverse varianti adatte a diversi casi d'uso.

Come prima classificazione, QEMU è offerto in modalità di emulazione del sistema completo e usermode:

Emulazione del sistema completo
In questa modalità, QEMU emula un sistema completo, inclusi uno o più processori e varie periferiche. È più preciso ma più lento e non richiede che il sistema operativo emulato sia Linux.
I comandi QEMU per l'emulazione dell'intero sistema sono nella forma qemu-system-target_architecture , ad es. qemu-system-x86_64 per emulare CPU Intel a 64 bit, qemu-system-i386 per CPU Intel a 32 bit, qemu-system-arm per ARM (32 bit), qemu-system-aarch64 per ARM64, ecc.
Se l'architettura di destinazione corrisponde alla CPU host, questa modalità può comunque beneficiare di una notevole accelerazione utilizzando un hypervisor come KVM[broken link: invalid section] o Xen.
Emulazione usermode
In questa modalità, QEMU è in grado di invocare un eseguibile Linux compilato per un'architettura (potenzialmente) diversa sfruttando le risorse del sistema host. Potrebbero esserci problemi di compatibilità, ad es. alcune funzionalità potrebbero non essere implementate, gli eseguibili linkati dinamicamente non funzioneranno out-of-the-box (vedi #Chrooting in ambiente arm / arm64 da x86_64[broken link: invalid section] per risolvere questo problema) e solo Linux è supportato (sebbene Wine può essere usato per eseguire programmi per Windows).
I comandi QEMU per l'emulazione in usermode sono nella forma qemu-target_architecture}, ad esempio qemu-x86_64 per emulare CPU intel a 64 bit.

QEMU è offerto nelle varianti linkate dinamicamente e linkate staticamente:

Dynamically-linked (default)
i comandi qemu-* si poggiano sulle librerie del sistema operativo host, quindi gli eseguibili sono più piccoli.
Statically-linked
i comandi qemu-* possono essere copiati su qualsiasi sistema Linux con la stessa architettura e non si dipendono dalle librerie del sistema operativo host.

Nel caso di Arch Linux, l'emulazione del sistema completo è offerta come:

Non-headless (impostazione predefinita)
questa variante abilita le funzionalità della GUI che richiedono dipendenze aggiuntive (come SDL o GTK).
Headless
questa è una variante più sottile che non richiede una GUI (adatta ad esempio per i server).
Nota: Le versioni headless e non headless installano comandi con lo stesso nome (es. qemu-system-x86_64) e quindi non possono essere installate contemporaneamente.