QEMU 7.2 er lansert. Som en emulator gjør QEMU det mulig å kjøre et program bygget for en maskinvareplattform på et system med en helt annen arkitektur, for eksempel å kjøre en applikasjon for ARM på en x86-kompatibel PC. I virtualiseringsmodus er ytelsen til kodekjøring i et isolert miljø nær den fysiske systemytelsen takket være direkte kjøring av instruksjoner på CPU og bruk av hypervisoren Xen eller KVM-modulen.
Opprinnelig ble prosjektet opprettet av Fabrice Bellard for å muliggjøre kjøring av utførbare filer bygget for x86-plattformen på arkitekturer som ikke er x86. Gjennom årene har prosjektet fått støtte for full emulering for 14 maskinvarearkitekturer, og antallet emulerte maskinvareenheter har oversteget 400. I utviklingen av versjon 7.2 er det gjort mer enn 1800 endringer av 205 utviklere.
Nøkkelforbedringer lagt til QEMU 7.2:
- I emulatoren for x86-arkitekturen er det lagt til støtte for AVX, AVX2, F16C, FMA3 og VAES-instruksjoner i den klassiske TCG-kodegeneratoren, samt ytelsesoptimalisering relatert til bruk av SSE-instruksjoner. For KVM er det lagt til støtte for varslingsmekanisme for utgang fra den virtuelle maskinen («notify vmexit»), som gjør det mulig å omgå feil i CPU som kan føre til heng.
- I ARM-emulatoren er det implementert støtte for CPU Cortex-A35 og prosessorextensjoner som ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (maskinvarehåndtering av tilgangsflagget og 'dirty' tilstand) og E0PD (forhindring av tilgang fra EL0 til delte adresstrær).
- I LoongArch-emulatoren er det lagt til støtte for fw_cfg DMA, hotplugging av minne og emulering av TPM-enheter (Trusted Platform Module).
- I OpenRISC-arkitekturens emulator er plattformen ‘virt’ implementert for å teste enheter og bruke i kontinuerlige integrasjons-systemer. Det er implementert støtte for flertrådet utførelse av den klassiske TCG-kodegeneratoren (Tiny Code Generator).
- I RISC-V emulatoren er det implementert mulighet for å laste inn firmware fra pflash i S-modus (S-mode) i emulerte maskiner ‘virt’. Arbeidet med device tree er forbedret.
- I emulatoren av arkitekturen 390x er det lagt til støtte for MSA5-utvidelsen (Message-Security-Assist Extension 5 med PRNO-instruksjon for generering av pseudo-tilfeldige tall), instruksjonene KIMD/KLM (SHA-512 implementering) og utvidet zPCI-tolkning for gjesteoperativsystemer basert på KVM-hypervisoren.
- I backendene for minnehåndtering er det implementert forhåndsallokering av minne med hensyn til NUMA-arkitekturen.
- Sikkerhetskontrollen av krypterte blokkeringsenheter LUKS er forbedret, og det er lagt til mulighet for å opprette LUKS-bilder i macOS.
- I 9pfs-backend, som gjør det mulig å bruke Plan 9 nettverksfilssystem for tilgang fra en virtuell maskin til en annen, har overgangen til å bruke GHashTable som hash i identitetstabellen ført til økt ytelse på 6-12 ganger i noen situasjoner.
- Nye netdev-backends stream og dgram er lagt til.
- I agenten for gjestesystemer basert på ARM-arkitekturen er støtte for FreeBSD lagt til.
- I GUI-byggene for macOS er det nå mulig å inkludere grensesnitt basert på Cocoa og SDL/GTK i én kjørbar fil.
- Den innebygde submodulen «slirp» er fjernet, og det anbefales å bruke det systembiblioteket libslirp i stedet.
- På grunn av mangel på testing er støtten for verts/systemer med 32-bits MIPS-prosessorer, som bruker «Big endian» byte-rekkefølge, erklært som utdødd.
Kilde: opennet.ru
