
QEMU è uno degli strumenti più potenti e versatili nel panorama della virtualizzazione e dell’emulazione hardware. Il suo nome è l’acronimo di Quick Emulator e rappresenta una soluzione open source che permette di emulare sistemi completi, processori e periferiche, offrendo la possibilità di eseguire sistemi operativi e applicazioni progettati per architetture hardware differenti rispetto a quella della macchina ospitante.
QEMU nasce nel 2003 grazie all’ingegno del programmatore francese Fabrice Bellard, già noto per altri progetti di rilievo come FFmpeg. L’obiettivo iniziale era sviluppare un traduttore dinamico portabile e veloce, capace di eseguire software scritto per una piattaforma su un’altra completamente diversa. Nel corso degli anni, QEMU si è evoluta rapidamente, ampliando il supporto da poche architetture (x86, ARM, SPARC) a molte altre come PowerPC, MIPS, HPPA, RISC-V e LoongArch, diventando un punto di riferimento per sviluppatori, amministratori di sistema e appassionati di informatica.
QEMU offre 2 modalità operative principali:
- Emulazione di sistema completo: consente di simulare un intero sistema, inclusi processore, memoria e periferiche, permettendo l’esecuzione di sistemi operativi diversi senza necessità di riavviare la macchina ospitante.
- Emulazione in modalità utente: permette di eseguire singoli processi compilati per una CPU differente rispetto a quella fisica, soluzione ideale per lo sviluppo e il testing cross-platform.
Oltre a queste, QEMU può sfruttare le estensioni di virtualizzazione hardware (come Intel VT-x e AMD-V) per ottenere prestazioni prossime a quelle native, soprattutto se integrata con KVM (Kernel-based Virtual Machine), un modulo del kernel Linux che funge da acceleratore di virtualizzazione.
QEMU è distribuita con licenza GNU General Public License versione 2 (GPLv2), garantendo la massima libertà d’uso, modifica e distribuzione del codice sorgente. Alcune componenti specifiche, come il Tiny Code Generator (TCG), sono rilasciate con licenza BSD, sempre compatibile con la GPL. QEMU è multi-piattaforma: può essere eseguita su GNU/Linux, BSD, macOS e Windows, sia su architetture a 32 che a 64 bit.
La versione stabile precedente a QEMU 10 è la versione QEMU 9.2.3, rilasciata il 26 marzo 2025.
Novità in QEMU 10
QEMU 10 introduce una serie di importanti miglioramenti, ottimizzazioni e alcune deprecazioni, frutto di un ciclo di sviluppo che ha visto ben 4 candidate di rilascio (RC). Esaminiamo ora le principali novità, purtroppo caratterizzate da un elevato grado di tecnicità:
Deprecazioni e rimozioni
- Deprecato il vecchio parametro di avvio
-old-param
per ARM. - La famiglia di CPU PXA2xx e l’estensione DSP iwMMXt sono ora considerate obsolete e saranno rimosse in una versione futura, per semplificare il codice e chiarire il supporto alle piattaforme.
Miglioramenti per architetture e CPU
- ARM: L’emulazione della pointer authentication ora utilizza un algoritmo specifico di QEMU, molto più rapido rispetto alla routine conforme allo standard QARMA5. Chi necessita della massima conformità può comunque attivare la modalità compatibile tramite l’opzione
-cpu max,pauth-qarma5=on
. Sono state aggiunte anche nuove funzionalità architetturali come FEAT_AFP, RPRES e XS. - RISC-V: Sono state introdotte numerose estensioni ISA, come Svukte, ssstateen, SHA, Smrnmi e la delega dei performance counter. È possibile sperimentare nuovi core come Tenstorrent Ascalon e Xiangshan Nanhu RV64, oltre al nuovo dispositivo
riscv-iommu-sys
per l’isolamento avanzato dell’I/O. - x86: Miglioramenti significativi nelle prestazioni grazie all’ottimizzazione delle istruzioni di copia stringa (
rep movs/stos
), con tempi di avvio ridotti per firmware e sistemi operativi che fanno largo uso di queste operazioni. Sono stati aggiunti nuovi modelli CPU Intel Clearwater Forest e Sierra Forest-v2 per allinearsi alle roadmap Xeon1. - HPPA (PA-RISC): Ora è possibile assegnare fino a 256 GB di RAM alle macchine virtuali ospiti, la traduzione è più veloce e viene aggiunto il dispositivo PCI Guardian Service Processor (Diva GSP). Grazie al nuovo cablaggio Astro LLMIO, è possibile disabilitare la scheda Artist legacy e collegare una GPU alternativa1.
I/O, storage e dispositivi
- virtio-scsi: Introdotto il supporto multiqueue reale, che consente di distribuire le code di I/O su più thread, migliorando la scalabilità e le prestazioni in ambienti ad alto throughput. Questo porta virtio-scsi allo stesso livello di virtio-blk, che aveva già ricevuto questa funzione nella versione 9.0.
- qemu-nbd: Aggiunta la possibilità di impostare un timeout per la stretta di mano, utile nei test di integrazione per evitare blocchi prolungati. Risolto anche un problema storico di blocco in uscita quando qemu-nbd veniva eseguito come demone.
- Grafica: Per i flussi di lavoro orientati a macOS, sono stati introdotti i nuovi dispositivi virtuali apple-gfx-pci (per x86-64) e apple-gfx-mmio (per Apple Silicon), che sfruttano il framework ParavirtualizedGraphics di macOS per fornire grafica accelerata alle ospiti macOS. Sul fronte GNU/Linux, il passthrough delle GPU Intel Gen 11/12 IGD è ora molto più affidabile, mentre la migrazione VFIO supporta ora più file descriptor simultanei.
- virtio-mem: Il balloon hot-plug ora funziona anche su ospiti s390x (mainframe IBM), facilitando l’adozione di virtio-mem nei data center. Sempre su s390x, sono stati aggiunti i profili CPU di generazione 17 e la possibilità di bypassare l’IOMMU per i dispositivi PCI quando la velocità è prioritaria rispetto all’isolamento.
Altre funzionalità e correzioni
- Introdotta la modalità di aggiornamento live “cpr-transfer”, che consente alle amministratrici di sistema di aggiornare QEMU senza dover fermare le macchine virtuali, riducendo i tempi di inattività.
- Risolto un bug che poteva causare deadlock durante la migrazione di macchine virtuali in pausa, un problema che aveva colpito diverse amministratrici negli ultimi mesi.
Documentazione e strumenti
La documentazione delle interfacce QMP (QEMU Machine Protocol) è stata completamente riorganizzata, con nuovi indici di riferimento e una migliore navigabilità tra comandi, eventi e tipi di dati. Questo rende più semplice per le sviluppatrici consultare e integrare QEMU nei propri flussi di lavoro.
Download e disponibilità
QEMU 10 può essere scaricata dalla pagina ufficiale del progetto. I pacchetti precompilati saranno presto disponibili nei repository software delle principali distribuzioni GNU/Linux rolling release.
Fonte: https://wiki.qemu.org/ChangeLog/10.0
Fonte: https://www.phoronix.com/news/QEMU-10.0-Released
Fonte: https://linuxiac.com/qemu-10-launches-with-multi-arch-improvements/
Source: Read More