De release van het QEMU-project 9.2 is aangekondigd. Als emulator stelt QEMU gebruikers in staat om programma's die zijn samengesteld voor één hardwareplatform op een systeem met een totaal andere architectuur uit te voeren, bijvoorbeeld het draaien van een applicatie voor ARM op een x86-compatibele PC. In de virtualisatiemodus is de uitvoering van de code in een geïsoleerde omgeving met QEMU bijna gelijk aan de prestaties van de hardware, dankzij de directe uitvoering van instructies op de CPU en het gebruik van de hypervisor Xen of de KVM-module in Linux, of de NVMM-module in NetBSD.
Het project is oorspronkelijk opgericht door Fabrice Bellard met als doel de uitvoering van Linux-binaire bestanden die voor het x86-platform zijn samengesteld, op niet-x86-architecturen mogelijk te maken. Gedurende de jaren van ontwikkeling is er ondersteuning toegevoegd voor volledige emulatie van 14 hardwarearchitecturen en het aantal geƫmuleerde hardwareapparaten is meer dan 400. Voor versie 9.2 zijn er meer dan 1700 wijzigingen door 209 ontwikkelaars aangebracht.
Belangrijke verbeteringen toegevoegd in QEMU 9.2:
- Experimentele ondersteuning voor het maken van apparaatsmodellen geschreven in Rust is toegevoegd. Bij het compileren van QEMU met Rust-ondersteuning wordt standaard een alternatieve implementatie van de PL011 UART-driver gebruikt, geschreven in Rust, maar deze wordt momenteel niet aanbevolen voor algemeen gebruik.
Momenteel is de ondersteuning voor Rust in QEMU standaard uitgeschakeld en kan deze worden geactiveerd bij het compileren door de optie "āenable-rust" op te geven bij het uitvoeren van het configure-script. Voor het compileren met Rust zijn minimaal rustc versie 1.63.0 en bindgen versie 0.60.0 vereist (bijvoorbeeld, in Debian 12 moet een nieuwere versie van Rust apart worden geĆÆnstalleerd). In de toekomst is het de planning om de Rust-compiler en de bindgen-binding generator op te nemen als verplichte build-vereisten.
Wat betreft de plannen om Rust in QEMU te bevorderen, kan worden opgemerkt dat de HPET (High Precision Event Timer)-driver en de driver voor block devices die in Rust zijn geschreven, operationeel moeten worden gemaakt, evenals de verdere ontwikkeling van bindings voor het gebruik van Rust in verschillende QEMU-componenten (bijvoorbeeld in block device-drivers, timers en GPIO), en het herschrijven van veiligheidskritische systemen zoals virtio in Rust.
- In het VirtIO-GPU-apparaat, dat zorgt voor de werking van de virtuele GPU, is ondersteuning voor 3D-versnelling toegevoegd via de grafische API Vulkan, geĆÆmplementeerd via de Venus Vulkan-driver die deel uitmaakt van Mesa. Dit stelt het gastbesturingssysteem in staat om een virtuele GPU te bieden voor 3D-rendering zonder exclusieve directe toegang tot de fysieke GPU te openen. Voor de werking is een virglrenderer-bibliotheek aan de host-systeemzijde en de Mesa-driver Venus aan de gast-systeemzijde vereist. Er is een instructie beschikbaar voor het configureren van de Vulkan-ondersteuning in QEMU.
- De migratietools voor gasten hebben ondersteuning gekregen voor het versnellen van compressieoperaties van gelijktijdig verzonden datastromen met behulp van de QATzip-bibliotheek, die gebruik maakt van de in Intel-processoren ingebouwde QAT (QuickAssist Technology)-versneller, die hulpmiddelen biedt voor het versnellen van berekeningen met betrekking tot compressie en encryptie.
- De cryptografische backend op basis van GLib heeft ondersteuning gekregen voor het hash-algoritme SHA-384.
- In de ARM-architectuur-emulator is ondersteuning toegevoegd voor processoruitbreidingen FEAT_EBF16 en FEAT_CMOW, evenals beveiligingsuitbreidingen die worden gebruikt in xilinx-zynq-a9-borden. Bij gebruik van de HVF-component, die de Hypervisor.framework-tools inzet voor de versnelling van gastsystemen op ARM-Mac-computers, is ondersteuning voor meer dan 64 GB geheugen gegarandeerd. Voor geƫmuleerde systemen sbsa-ref en virt is ondersteuning toegevoegd voor tweestapsvertaling van adressen in de SMMU (System Memory Management Unit). De ondersteuning voor verouderde soorten geƫmuleerd hardware akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex en z2 is stopgezet.
- In de x86-architectuur-emulator is ondersteuning toegevoegd voor een nieuw type hardwareconfiguratie ā nitro-enclave, die een AWS Nitro Enclave-omgeving emuleert en in staat is om systeembeelden in Enclave Image Format te laden.
- In de x86-architectuur-emulator voor de hypervisor KVM is de mogelijkheid geĆÆmplementeerd om ondersteuning voor de AVX10-instructieset in te schakelen, evenals specifieke versies van AVX10 ā avx10-128, avx10-256 en avx10-512.
- In de RISC-V-architectuur-emulator is ondersteuning toegevoegd voor de instructieset-uitbreidingen Svvptc, Bitmanip (Bit-Manipulation) en CFI (Control Flow Integrity), die worden gebruikt op OpenTitan-borden. In het type geƫmuleerde systemen 'virt' is ondersteuning toegevoegd voor IOMMU. De prestaties van de instructies ld en st zijn verhoogd.
- In de HPPA-architectuur-emulator is de SeaBIOS-hppa-firmware bijgewerkt naar versie 17.
- In de s390x-architectuur emulator is de mogelijkheid toegevoegd om op te starten vanaf andere apparaten als opstarten vanaf het opgegeven apparaat mislukt.
Bron: opennet.ru
