Lanseringen av prosjektet QEMU 8.2. Som en emulator lar QEMU deg kjøre programmer bygget for én maskinvareplattform på et system med en helt annen arkitektur, for eksempel å kjøre et ARM-program på en x86-kompatibel PC. I virtualiseringsmodus er ytelsen til kodekjøringen i et isolert miljø nær det fysiske systemet ved å kjøre instruksjoner direkte på CPU og bruke hypervisoren Xen eller KVM-modulen.
Prosjektet ble opprinnelig opprettet av Fabrice Bellard med målet om å muliggjøre kjøring av Linux-kjørbare filer bygget for x86-plattformen på arkitekturer som er forskjellige fra x86. Gjennom årene har det blitt lagt til støtte for full emulering for 14 maskinvarearkitekturer, og antallet emulerte maskinvareenheter har oversteget 400. I forberedelsen av versjon 8.2 ble det gjort mer enn 3200 endringer av 238 utviklere.
Nøkkelforbedringer lagt til QEMU 8.2:
- Et virtio-sound-enhet er lagt til, som gjør det mulig å emulere et lydkort for opptak og avspilling av lyd i gjestesystemet ved hjelp av en lydbackend (pulseaudio, sdl eller coreaudio) som kjører på vertssystemet. For å emulere lydapparatet i Linux-kjernen for gjestesystemet, må alternativet CONFIG_SND_VIRTIO være aktivert.
- Et virtuelt grafisk grensesnitt (VGI, Virtual Graphics Interface) rutabaga er lagt til med implementering av et virtuelt GPU (virtio-gpu), som ligner på det tidligere tilgjengelige VirGL og også gir mulighet til å bruke et virtuelt GPU i gjestesystemet for 3D-rendering, uten å åpne eksklusiv direkte tilgang til det fysiske GPU. Koden for rutabaga er utviklet innenfor rammene av Android/CrosVM-prosjektet og gjør det mulig å bruke emulatoren for Android-plattformen med vanlig QEMU.
- Et hv-balloon-enhet er lagt til med implementering av Dynamisk minnehåndteringsprotokoll (Dynamic Memory) for Hyper-V, som gjør det mulig å returnere unyttede sides på minne til vertssystemet under drift og be om flere dersom minnet er utilstrekkelig. Den nye enheten kan betraktes som et alternativ til virtio-balloon for gjestesystemer med Windows, og bruker en backend på vertssystemet som støtter Dynamisk minneprotokoll.
- Et Universal Flash Storage-enhet er foreslått for emulering av Flash-lagringsenhet.
- I driveren for blokkenheter NBD (Network Block Device) er det lagt til støtte for en protokollutvidelse som bruker 64-biters forskyvninger for å forbedre ytelsen ved håndtering av store datamengder.
- Det er lagt til støtte for output i standard kdump-format i dump-guest-memory-kommandoen.
- Det er lagt til støtte for emulering av UFS ved bruk av nye enheter ufs og ufs-lu.
- I VFIO (Virtual Function I/O) er det lagt til støtte for P2P-migrasjonsmodus og implementert muligheten for dynamisk tildeling av MSI-X. Forberedelser er gjort for overgangen til den nye IOMMUFD-backenden.
- I virtio-mem-enheten er modus «dynamic-memslots=on» implementert for dynamisk tildeling av flere minnespor i stedet for statisk tildeling av ett stort spor. Bruken av modality reduserer minneforbruket på større virtio-mem-enheter som gir VM en liten mengde minne.
- I emulatoren for x86-arkitekturen ved emulering av Xen-hypervisormiljøet KVM er støtte for PV-konsoller og nettverksenheter sikret, og kommandoene for blokker og nettverksenheter er forenklet. Den klassiske TCG-kodegeneratoren har fått støtte for SHA-instruksjoner.
- I emulatoren for ARM-arkitekturen er emulering av CPU Cortex-A710 og Neoverse-N2 implementert. Støtte for prosessorutvidelsene PACQARMA3, EPAC, Pauth2, FPAC, FPACCOMBINE, TIDCP1, MOPS, HBC og HPMN0 er lagt til. For Xilinx Versal-kortet er det implementert modellering av CFU/CFI- og TRNG-enheter.
- I emulatoren for RISC-V-arkitekturen er et sett med vektorkryptografiske instruksjoner implementert. Støtte for virtuelle IRQ-er og filtrering av IRQ-er er lagt til. Støtte for Zicond-utvidelser har blitt stabilisert. Støtte for virtualiseringsutvidelser AIA (Advanced Interrupt Architecture) via KVM er også lagt til.
- I emulatoren for HPPA-arkitekturen er 64-biters CPU PA-RISC 2.0 og emuleringen av C3700-systemet, inkludert Astro minnekontroller og Elroy PCI-broer, blitt realisert.
- I emulatoren for LoongArch-arkitekturen er emuleringen av CPU Loongson LA132 implementert. Støtte for utvidelsen av instruksjonssettet LASX og instruksjonen PRELDX er lagt til.
- I emulatoren for s390x-arkitekturen er støtte for vfio-ap lagt til for å tillate videresending av krypteringsadapter for sikre gjestesteder.
- I Tricore-emulatoren er støtte for TC37x-prosessorer (ISA 1.6.2) og instruksjonene CRCN, FTOU, FTOHP, HPTOF lagt til.
Kilde: opennet.ru
