Rilasciato QEMU 9.2: Aggiornamenti per l’Architettura ARM e RISC-V e Altre Novità
QEMU, un noto emulatore e virtualizzatore open source distribuito con licenza GNU GPL (General Public License), ha recentemente rilasciato la versione QEMU 9.2, che introduce una serie di significativi miglioramenti, deprecazioni e rimozioni. Questo aggiornamento arriva dopo 3 mesi dal precedente QEMU 9.1, e non solo apporta modifiche sostanziali, ma fornisce anche una roadmap più chiara e un supporto migliorato per le funzionalità e le configurazioni hardware emergenti.
Modifiche e Rimozioni
QEMU 9.2 elimina diverse funzionalità e opzioni che erano state deprecate da tempo. Tra queste, le opzioni della riga di comando -rotate
e -portrait
, precedentemente associate ai dispositivi PXA2xx, sono state rimosse poiché queste VM (Virtual Machine) non sono più supportate. I dispositivi PXA2xx sono una serie di microprocessori sviluppati da Intel, progettati principalmente per dispositivi portatili e applicazioni embedded. Questi processori fanno parte della famiglia XScale, una linea di CPU basata sull’architettura ARM (Advanced RISC Machine), che è nota per la sua efficienza energetica e le prestazioni elevate.
Il backend “proxy” per 9pfs e il programma associato chiamato virtfs-proxy-helper
sono stati rimossi. Queste componenti venivano utilizzate per gestire la condivisione di file tra il sistema host e le VM (Virtual Machine) ma ora sono state sostituite da soluzioni più moderne e efficienti. In particolare, gli sviluppatori di QEMU hanno deciso di adottare il driver backend “locale” e la nuova tecnologia virtio-fs
, che offre prestazioni superiori e una gestione più semplice delle risorse condivise.
In aggiunta a queste modifiche, alcune proprietà specifiche, come quella denominata “loaded”, che appartenevano ai tipi di oggetto ‘secret’ (segreti) e ‘tlscreds’ (credenziali TLS), sono state completamente eliminate. Queste proprietà non avevano più una funzione utile nel contesto attuale del software, quindi la loro rimozione contribuisce a semplificare il codice e a migliorare la manutenzione del sistema. In sostanza, queste decisioni mirano a rendere QEMU più snello e performante, eliminando funzionalità obsolete e adottando tecnologie più avanzate.
Alcune opzioni di QEMU sono state contrassegnate come deprecate, il che significa che gli utenti dovrebbero iniziare a prepararsi per la loro rimozione nelle future versioni. Tra queste opzioni ci sono:
- Il comando
query-migrationthreads
: utilizzato per interrogare il numero di thread di migrazione attivi. - Il backend
gluster
per i dispositivi a blocchi: un’opzione che permetteva l’integrazione con GlusterFS, un file system distribuito. - L’opzione “reconnect”: utilizzata per gestire le riconnessioni nei dispositivi di rete e di carattere.
Gli utenti sono incoraggiati a passare a soluzioni alternative suggerite. Ad esempio, per l’opzione “reconnect”, si raccomanda di utilizzare “reconnect-ms”, che offre una gestione più flessibile delle riconnessioni specificando timeout in millisecondi.
Sebbene queste modifiche possano sembrare inizialmente scomode, i manutentori di QEMU ritengono che siano necessarie per mantenere un codice più pulito e coerente nel lungo termine. Questo approccio mira a semplificare l’architettura del software e a migliorare l’esperienza complessiva degli utenti, riducendo la complessità e il rischio di errori legati all’uso di funzionalità obsolete.
Miglioramenti nell’Emulazione Hardware
L’architettura Arm ha ricevuto aggiornamenti significativi nel campo dell’emulazione hardware. Sono state introdotte nuove funzionalità architetturali per le CPU, come FEAT_EBF16
e FEAT_CMOW
, che migliorano le capacità di elaborazione e ottimizzano le prestazioni per applicazioni specifiche.
Inoltre, le schede sbsa-ref
e virt
ora includono unità di gestione della memoria di sistema (SMMU). Queste unità sono in grado di effettuare una traduzione in due fasi, il che significa che possono gestire la mappatura della memoria in modo più efficiente e sicuro. Questa funzionalità è particolarmente utile per migliorare la virtualizzazione della memoria, consentendo una gestione più flessibile delle risorse e un accesso più rapido ai dati da parte delle macchine virtuali.
Per gli host macOS con versioni 15 o successive, l’acceleratore hvf
può ora gestire macchine virtuali con spazi di memoria superiori all’indirizzamento a 36 bit, a condizione che la CPU sottostante lo supporti. Questo sviluppo permette l’esecuzione di carichi di lavoro più pesanti e applicazioni ad alta intensità di risorse, su hardware Apple recente.
Inoltre, in QEMU 9.2 sono stati rimossi alcuni tipi di dispositivi embedded Arm che erano già stati deprecati in versioni precedenti. Tra questi, i tipi come akita
, borzoi
e altri simili sono stati definitivamente eliminati dal codice. Questi dispositivi non erano più utilizzati e la loro rimozione contribuisce a semplificare il software.
Infine, l’obiettivo CRIS (Completely Reliable Instruction Set), che era stato difficile da mantenere a causa della mancanza di supporto da parte del kernel Linux e delle moderne toolchain (strumenti di sviluppo), è stato completamente rimosso. Questo significa che QEMU non supporterà più l’emulazione per questo specifico set di istruzioni, semplificando ulteriormente il progetto e concentrando le risorse su architetture più rilevanti e attivamente supportate.
Progressi nel Supporto RISC-V
La versione QEMU 9.2 porta notevoli progressi anche nel supporto per RISC-V. Tra le novità più rilevanti, è stata introdotta una nuova proprietà che consente di impostare il valore di vl
(vector length) su AVL/2, dove AVL
rappresenta la lunghezza massima consentita del vettore. Questo aggiornamento ottimizza la gestione delle operazioni vettoriali, rendendo più efficiente l’elaborazione dei dati.
Inoltre, è stato aggiunto il registro fcsr
(Floating-Point Control and Status Register) al log per l’estensione F, che è fondamentale per le operazioni in virgola mobile. Questo miglioramento permette una gestione più dettagliata e precisa delle operazioni aritmetiche in virgola mobile all’interno delle macchine virtuali RISC-V.
QEMU 9.2 include anche miglioramenti alle istruzioni di caricamento e archiviazione dei vettori, aumentando così le prestazioni e l’efficienza nella manipolazione dei dati vettoriali.
Un altro importante aggiornamento riguarda l’estensione del supporto per l’architettura degli interrupt avanzati (AIA) all’interno del KVM (Kernel-based Virtual Machine). Questo consente una gestione più sofisticata degli interrupt, migliorando la reattività e le prestazioni delle macchine virtuali.
Infine, gli utenti possono ora sperimentare con le estensioni IOMMU (Input/Output Memory Management Unit) e CFI (Control Flow Integrity) su hardware RISC-V. Queste estensioni offrono funzionalità avanzate per la gestione della memoria e la protezione contro attacchi informatici, contribuendo a un ambiente di virtualizzazione più sicuro e performante.
Questi progressi evidenziano l’impegno continuo di QEMU nel supportare l’architettura RISC-V, che sta guadagnando sempre più attenzione nel settore della tecnologia
Novità per x86
In QEMU 9.2 debutta un nuovo tipo di VM (Virtual Machine) chiamata “nitro-enclave”. Questo tipo di VM (Virtual Machine) è progettato per emulare gli ambienti AWS Nitro Enclave, una soluzione che consente di creare ambienti sicuri e isolati per l’esecuzione di applicazioni sensibili.
Il supporto per il formato di avvio dei file chiamato EIF (Enclave Image Format) è una delle caratteristiche chiave di questa nuova implementazione. Grazie a questa funzionalità, gli utenti possono avviare direttamente le immagini delle enclave, facilitando l’integrazione con le infrastrutture cloud di Amazon Web Services (AWS).
L’introduzione della VM (Virtual Machine) “nitro-enclave” rappresenta un passo avanti significativo per gli utenti che lavorano in ambito cloud e necessitano di ambienti altamente sicuri per gestire dati sensibili o eseguire applicazioni critiche. Questa innovazione offre la possibilità di sfruttare le potenzialità della virtualizzazione in un contesto in cui la sicurezza e l’isolamento sono fondamentali, rispondendo così alle crescenti esigenze del mercato per soluzioni di virtualizzazione sicure e affidabili
Inoltre, il supporto KVM ora include le istruzioni AVX10, configurabili in vari modi (ad esempio avx10-128
, avx10-256
, ecc.), a seconda delle esigenze dell’utente e delle capacità della CPU host.
Innovazioni nelle Funzionalità Front-End
Nel campo dell’emulazione dei dispositivi e delle funzionalità front-end, QEMU 9.2 potenzia virtio-gpu
con l’incapsulamento Venus per Vulkan, migliorando potenzialmente le prestazioni grafiche in casi d’uso specializzati. Inoltre, virtio-mem
ora supporta la sospensione/ripresa su x86-64, promettendo un comportamento di allocazione della memoria più dinamico.
Sviluppo con Rust
QEMU 9.2 introduce anche il supporto sperimentale per Rust nei modelli di dispositivi. Anche se non è ancora consigliato per l’uso in produzione, abilitare i modelli basati su Rust è semplice come configurare QEMU con l’opzione --enable-rust
, a patto che il sistema host soddisfi i requisiti del compilatore Rust e di bindgen, lo strumento utilizzato per generare automaticamente i binding (collegamenti) Rust per le librerie C.
È importante notare che ci possono essere eccezioni alla politica della piattaforma; alcune distribuzioni GNU/Linux potrebbero incontrare difficoltà nel compilare QEMU con Rust abilitato. Tuttavia, questa inclusione rappresenta un cambiamento significativo nelle pratiche di sviluppo del progetto.
Requisiti Aggiornati
Infine, per una compilazione ed esecuzione senza problemi, QEMU 9.2 richiede ora Meson versione 1.5.0 o successiva; il nuovo tipo di VM (Virtual Machine) “nitro-enclave” introduce una dipendenza da libcbor (libreria C). Inoltre, il modulo Python pycotap
è ora incluso per i test funzionali, riflettendo un graduale allontanamento da ambienti di sviluppo più vecchi, come Avocado, a favore di soluzioni più moderne.
La nuova versione può essere scaricata dalla pagina ufficiale di download di QEMU, dove gli utenti possono trovare il tarball contenente tutti i file necessari. Per ulteriori dettagli sulle modifiche apportate in questa versione, è possibile consultare il changelog (registro delle modifiche ), che fornisce un elenco completo delle novità introdotte, ma, per come avete potute leggere finora, assai tecniche e specialistiche.
Fonte: https://www.qemu.org/
Fonte: https://wiki.qemu.org/ChangeLog/9.2
Fonte: https://www.phoronix.com/news/QEMU-9.2-Released
Fonte: https://9to5linux.com/qemu-9-2-brings-aws-nitro-enclave-emulation-many-risc-v-improvements
Fonte: https://linuxiac.com/qemu-9-2-open-source-machine-emulator/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.