QEMU 9.2-projektet er blevet præsenteret. Som emulator giver QEMU mulighed for at køre et program, der er bygget til en hardwareplatform, på et system med en helt anden arkitektur, for eksempel at køre en ARM-applikation på en x86-kompatibel PC. I virtualiseringsmodus i QEMU er ydeevnen ved udførelse af kode i et isoleret miljø tæt på den fysiske systems ydeevne ved at udføre instruktioner direkte på CPU'en og ved at anvende hypervisoren Xen eller KVM-modulet i Linux, eller NVMM-modulet i NetBSD.
Projektet blev oprindeligt skabt af Fabrice Bellard for at muliggøre kørsel af Linux eksekverbare filer bygget til x86-platformen på arkitekturer, der er forskellige fra x86. Gennem årene er der blevet tilføjet støtte til fuld emulering af 14 hardwarearkitekturer, og antallet af emulerede hardwareenheder har oversteget 400. Forberedt til version 9.2 er der blevet lavet mere end 1700 ændringer fra 209 udviklere.
Nøgleforbedringer, der blev tilføjet i QEMU 9.2:
- Der er tilføjet eksperimentel støtte til at oprette enhedsmodeller skrevet i Rust. Når QEMU bygges med støtte for Rust, anvendes en alternativ implementation af PL011 UART-driveren, der er skrevet i Rust, men som endnu ikke anbefales til bred anvendelse.
I øjeblikket er Rust-support i QEMU som standard deaktiveret og aktiveres under bygning ved at angive optionen "—enable-rust" under konfigurationsscriptet. For at bygge med Rust kræves som minimum rustc version 1.63.0 og bindgen 0.60.0 (for eksempel i Debian 12 skal en nyere version af Rust installeres separat). I fremtiden planlægges det at tilføje Rust-kompiler og bindgen-bindingsgeneratoren til de obligatoriske byggeomkostninger.
Blandt planerne relateret til fremme af Rust i QEMU er det at få HPET-driveren (High Precision Event Timer) og driveren til blokenheder, der er skrevet i Rust, til at fungere, fortsætte udviklingen af bindings til brug af Rust i forskellige komponenter af QEMU (for eksempel i blokenhedens drivere, timere og GPIO) samt omprogrammere sikkerhedskritiske systemer til Rust, såsom virtio.
- VirtIO-GPU-enheden, der muliggør drift af virtuel GPU, har fået tilføjet support for 3D-acceleration ved hjælp af grafik-API'en Vulkan, implementeret gennem Mesa Vulkan-driveren Venus, som gør det muligt at levere et virtuelt GPU til gæstesystemet til 3D-rendering uden at åbne eksklusiv direkte adgang til den fysiske GPU. For at dette kan fungere, kræves det, at biblioteket virglrenderer er tilgængeligt på værtssystemet og Mesa-driveren Venus er installeret på gæstesystemet. Der er tilgængelig en vejledning til opsætning af Vulkan-support i QEMU.
- Migrationsværktøjet for gæster har fået tilføjet støtte til acceleration af komprimeringsoperationer for samtidige datastreams ved hjælp af biblioteket QATzip, der udnytter den indbyggede QAT (QuickAssist Technology) accelerator i Intel-processorer, som tilbyder værktøjer til at accelerere beregninger relateret til kompression og kryptering.
- Den kryptografiske backend baseret på GLib har fået tilføjet støtte til hash-algoritmen SHA-384.
- ARM-arkitektur-emulatoren har fået tilføjet support for CPU-udvidelserne FEAT_EBF16 og FEAT_CMOW samt sikkerhedsudvidelser, der anvendes i Xilinx Zynq-9 boards. Når komponenten HVF anvendes, som aktiverer Hypervisor.framework-værktøjet til acceleration af gæstesystemernes ydeevne på ARM-baserede Mac-computere, understøttes der mere end 64 GB hukommelse. Der er også tilføjet støtte til to-trins adressering i SMMU (System Memory Management Unit) for de emulerede systemer sbsa-ref og virt. Støtten for forældede emuleringstyper som akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex og z2 er blevet ophørt.
- X86-arkitektur-emulatoren har fået tilføjet support for en ny type hardwarekonfiguration - nitro-enclave, som emulerer AWS Nitro Enclave-miljøet og er i stand til at indlæse systembilleder i Enclave Image Format.
- I emulatoren for x86-arkitekturen til hypervisoren KVM Muligheden for at aktivere support for AVX10-instruktionssættet samt specifikke versioner af AVX10 - avx10-128, avx10-256 og avx10-512 er blevet implementeret.
- RISC-V arkitektur-emulatoren har fået tilføjet støtte til kommandoudvidelserne Svvptc, Bitmanip (Bit-Manipulation) og CFI (Control Flow Integrity), der anvendes på OpenTitan boards. Der er tilføjet support for IOMMU i den emulerede systemtype ‘virt’. Ydelsen for ld- og st-instruktioner er blevet forbedret.
- I HPPA-arkitektur-emulatoren er SeaBIOS-hppa firmwaren blevet opdateret til version 17.
- I emulatoren for s390x-arkitektur er det blevet tilføjet mulighed for at starte fra andre enheder, hvis det ikke lykkedes at starte fra den angivne enhed.
Kilde: opennet.ru
