Pubblicato l'emulatore QEMU 9.2.0 con supporto per Rust e Vulkan

È stato rilasciato il progetto QEMU 9.2. Come emulatore, QEMU consente di eseguire applicazioni costruite per una piattaforma hardware su un sistema con un'architettura completamente diversa, ad esempio, eseguire un'applicazione per ARM su un PC compatibile con x86. In modalità virtualizzazione, le prestazioni dell'esecuzione del codice in un ambiente isolato sono vicine a quelle di un sistema hardware grazie all'esecuzione diretta delle istruzioni sulla CPU e all'utilizzo dell'ipercontrollore Xen o del modulo KVM su Linux, o del modulo NVMM su NetBSD.

Il progetto è stato originariamente creato da Fabrice Bellard con l'obiettivo di consentire l'esecuzione di file eseguibili Linux compilati per la piattaforma x86 su architetture diverse da x86. Nel corso degli anni sono state aggiunte funzionalità di emulazione completa per 14 architetture hardware, e il numero di dispositivi hardware emulati ha superato i 400. Per la versione 9.2 sono state apportate oltre 1700 modifiche da 209 sviluppatori.

Migliorie principali aggiunte in QEMU 9.2:

  • È stata aggiunta un supporto sperimentale per la creazione di modelli di dispositivi scritti nel linguaggio Rust. Quando si compila QEMU con supporto Rust, viene utilizzata di default un'implementazione alternativa del driver PL011 UART, scritta in Rust, anche se attualmente non raccomandata per un uso generalizzato.

    Attualmente, il supporto per Rust in QEMU è disabilitato per impostazione predefinita e deve essere attivato durante la compilazione specificando l'opzione "—enable-rust" al momento dell'esecuzione dello script di configurazione. Per la compilazione con Rust è necessario disporre di almeno le versioni rustc 1.63.0 e bindgen 0.60.0 (ad esempio, in Debian 12 sarà necessario installare separatamente una versione più nuova di Rust). In futuro, si prevede di aggiungere il compilatore Rust e il generatore di binding bindgen tra le dipendenze di compilazione obbligatorie.

    Tra i piani per promuovere Rust in QEMU, si possono evidenziare il completamento della messa a punto del driver HPET (High Precision Event Timer) e del driver per dispositivi a blocchi scritti in Rust, il continuo sviluppo di interfacce per l'uso di Rust in vari componenti di QEMU (ad esempio, nei driver di dispositivi a blocchi, timer e GPIO) e la riscrittura in Rust di sistemi critici per la sicurezza, come virtio.

  • Il dispositivo VirtIO-GPU, che fornisce funzionalità di GPU virtuale, ha aggiunto il supporto per l'accelerazione 3D utilizzando l'API grafica Vulkan, implementata tramite il driver Vulkan Venus incluso in Mesa. Questo consente di fornire al sistema guest una GPU virtuale per il rendering 3D senza la necessità di aprire un accesso diretto esclusivo alla GPU fisica. È necessario avere la libreria virglrenderer sul sistema host e il driver Mesa Venus sul sistema guest. È disponibile una guida per configurare il supporto Vulkan in QEMU.
  • Nel toolkit di migrazione degli guest è stato aggiunto il supporto per l'accelerazione delle operazioni di compressione dei flussi di dati trasmessi simultaneamente mediante la libreria QATzip, che utilizza l'acceleratore QAT (QuickAssist Technology) integrato nei processori Intel, offrendo strumenti per accelerare i calcoli legati alla compressione e alla crittografia.
  • Nel backend crittografico basato su GLib è stato aggiunto il supporto per l'algoritmo di hashing SHA-384.
  • Nell'emulatore dell'architettura ARM è stata aggiunta la supporto alle estensioni del processore FEAT_EBF16 e FEAT_CMOW, oltre a estensioni per garantire la sicurezza, utilizzate nelle schede xilinx-zynq-a9. Utilizzando il componente HVF, che sfrutta il toolkit Hypervisor.framework per accelerare l'esecuzione di sistemi guest su computer ARM Mac, è garantito il supporto per oltre 64 GB di memoria. Per i sistemi emulati sbsa-ref e virt è stata aggiunta la supporto per la traduzione degli indirizzi a due fasi nella SMMU (System Memory Management Unit). È stata interrotta la supporto per i tipi di hardware emulato obsoleti akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex e z2.
  • Nell'emulatore dell'architettura x86 è stata aggiunta la supporto per un nuovo tipo di configurazione hardware — nitro-enclave, che emula l'ambiente AWS Nitro Enclave e può caricare immagini di sistema nel formato Enclave Image Format.
  • Nell'emulatore dell'architettura x86 per il hypervisor KVM è stata implementata la possibilità di attivare il supporto per il set di istruzioni AVX10, e versioni specifiche di AVX10 — avx10-128, avx10-256 e avx10-512.
  • Nell'emulatore dell'architettura RISC-V è stato aggiunto il supporto per le estensioni del set di istruzioni Svvptc, Bitmanip (Bit-Manipulation) e CFI (Control Flow Integrity), utilizzate sulle schede OpenTitan. Nel tipo di sistemi emulati "virt" è stato aggiunto il supporto per l'IOMMU. È stata aumentata la performance delle istruzioni ld e st.
  • Nel emulatore dell'architettura HPPA, il firmware SeaBIOS-hppa è stato aggiornato alla versione 17.
  • Nell'emulatore dell'architettura s390x è stata aggiunta la possibilità di avviarsi da altri dispositivi, se non è stato possibile avviarsi dal dispositivo specificato.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster