Release av QEMU 7.2-emulatorn

Releasen av QEMU 7.2-projektet presenteras. Som emulator låter QEMU dig köra ett program byggt för en hårdvaruplattform på ett system med en helt annan arkitektur, till exempel köra en ARM-applikation på en x86-kompatibel PC. I virtualiseringsläget i QEMU är prestandan för kodexekvering i en isolerad miljö nära ett hårdvarusystem på grund av direkt exekvering av instruktioner på CPU:n och användningen av Xen hypervisor eller KVM-modul.

Projektet skapades ursprungligen av Fabrice Bellard för att tillåta körbara Linux-filer byggda för x86-plattformen att köras på icke-x86-arkitekturer. Under årens utveckling har fullt emuleringsstöd lagts till för 14 hårdvaruarkitekturer, antalet emulerade hårdvaruenheter har överstigit 400. Som förberedelse för version 7.2 har mer än 1800 ändringar gjorts från 205 utvecklare.

Viktiga förbättringar som lagts till i QEMU 7.2:

  • x86-emulatorn i den klassiska TCG-kodgeneratorn har lagt till stöd för AVX-, AVX2-, F16C-, FMA3- och VAES-instruktioner, samt prestandaoptimeringar relaterade till användningen av SSE-instruktioner. För KVM har stöd lagts till för en mekanism för att spåra utgångar från virtuella datorer ("notify vmexit"), som gör att du kan kringgå fel i CPU:n som kan leda till hängningar.
  • ARM-emulatorn stöder Cortex-A35 CPU och processortillägg ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hårdvarukontroll av åtkomstflagga och "smutsigt" tillstånd) och E0PD (förhindrar ELO-åtkomst till partitionerade adresskartor).
  • LoongArch-emulatorn lägger till stöd för fw_cfg DMA, hot-plug-minne och TPM-enhetsemulering (Trusted Platform Module).
  • OpenRISC-arkitekturemulatorn implementerar "virt"-plattformen för att testa enheter och använda dem i kontinuerliga integrationssystem. Stöd för flertrådskörning av den klassiska TCG (Tiny Code Generator) kodgeneratorn har implementerats.
  • Emulatorn för RISC-V-arkitekturen i de 'virt'-emulerade maskinerna har förmågan att ladda firmware från pflash i S-läge. Förbättrat arbete med enhetsträd.
  • 390x-emulatorn ger stöd för MSA5 (Message-Security-Assist Extension 5 med PRNO-instruktionen för att generera pseudoslumptal), KIMD/KLM-instruktioner (implementering av SHA-512) och utökad zPCI-tolkning för gästsystem baserade på KVM-hypervisorn .
  • Backends för att arbeta med minne tillhandahåller förallokering av minne med hänsyn till NUMA-arkitekturen.
  • Header-kontrollen av LUKS-krypterade blockenheter har förstärkts och möjligheten att skapa LUKS-bilder på macOS har lagts till.
  • 9pfs-backend, som tillåter användning av nätverksfilsystemet Plan 9 för att komma åt en virtuell maskin till en annan, bytte till att använda GHashTable-hash i identifierartabellen, vilket i vissa situationer ledde till en 6-12 gångers ökning av prestanda.
  • Lade till nya netdev-backends stream och dgram.
  • FreeBSD-stöd har lagts till agenten för ARM-baserade gäster.
  • GUI-byggen för macOS ger möjligheten att inkludera gränssnitt baserade på Cocoa och SDL/GTK i en körbar fil.
  • Den inbyggda undermodulen "slirp" har tagits bort, istället rekommenderas att använda libslirps systembibliotek.
  • På grund av bristande testkapacitet har stöd för värdsystem med 32-bitars MIPS-processorer som använder Big Endian byte-ordning fasats ut.

Källa: opennet.ru

Lägg en kommentar