QEMU (Italiano)
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[broken link: package not found] (o qemu-headless[broken link: replaced by qemu-base] per la versione senza interfaccia grafica) e i seguenti pacchetti opzionali per le proprie esigenze:
- qemu-arch-extra[broken link: replaced by qemu-emulators-full] - supporto per architetture extra
- qemu-block-gluster - supporto per blocchi Glusterfs
- qemu-block-iscsi - supporto per blocchi iSCSI
- qemu-block-rbd - Supporto per blocchi RBD
- samba - supporto per server | SMB / CIFS
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 esempioqemu-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).
qemu-system-x86_64
) e quindi non possono essere installate contemporaneamente.