QEMU 7.0-projektet er blevet præsenteret. Som emulator muliggør QEMU kørsel af programmer, der er bygget til én hardwareplatform, på et system med en helt anden arkitektur, for eksempel at køre en ARM-applikation på en x86-kompatibel PC. I virtualiseringstilstand er kodeudførelsens ydelse i det isolerede miljø tæt på den fysiske systemydelse ved hjælp af direkte udførelse af instruktioner på CPU'en og involvering af hypervisoren Xen eller KVM-modulet.
Projektet blev oprindeligt skabt af Fabrice Bellard med det formål at muliggøre kørsel af Linux-eksekverbare filer bygget til x86-arkitekturen på arkitekturer, der adskiller sig fra x86. I løbet af årene er der blevet tilføjet støtte til fuld emulering for 14 hardwarearkitekturer, og antallet af emulerede hardware-enheder har oversteget 400. I forberedelsen af version 7.0 er der blevet foretaget mere end 2500 ændringer fra 225 udviklere.
Nøgleforbedringer tilføjet i QEMU 7.0:
- Emulatoren til x86-arkitektur har fået tilføjet support for Intel AMX (Advanced Matrix Extensions) instruktionssættet, implementeret i Intel Xeon Scalable serverprocessorer. AMX tilbyder nye konfigurerbare TMM "TILE" registre og instruktioner til at manipulere data i disse registre, såsom TMUL (Tile matrix MULtiply) til matrixmultiplikation.
- Muligheden for at logge ACPI-hændelser fra gæstesystemet via ACPI ERST-grænsefladen er blevet tilføjet.
- I virtiofs-modulet, der anvendes til at videregive dele af værtsystemets filsystem til gæstesystemet, er supporten for sikkerhedsetiketter blevet forbedret. Sårbarheden CVE-2022-0358, der gjorde det muligt at hæve sine privilegier i systemet ved at oprette eksekverbare filer i de via virtiofs videregivne kataloger, der tilhører en anden gruppe og er udstyret med SGID-flaget, er blevet rettet.
- Fleksibiliteten ved sikkerhedskopiering af aktive systembilleder, der er i brug, er blevet forbedret (der oprettes et snapshot, hvorefter en copy-before-write (CBW) filtrering bruges til at opdatere tilstanden af snapshotet, som kopierer data fra områder, hvor gæstesystemet skriver til). Der er tilføjet support for billeder i formater, der adskiller sig fra qcow2. Muligheden for adgang til snapshotten med sikkerhedskopien er sikret ikke direkte, men via driveren for blok-enheden snapshot-access. Mulighederne for at styre filtreringen af CBW er blevet udvidet, for eksempel kan bestemte bitmaps udelukkes fra behandlingen.
- I emulatore ARM for 'virt' er der tilføjet støtte til virtio-mem-pci, definitionen af CPU-topologi for gæstesystemet og aktivering af PAuth ved brug af hypervisoren med accelerator hvf. KVM I emulatore for 'xlnx-versal-virt' er der tilføjet støtte til PMC SLCR og emulering af Flash-controlleren OSPI. For de emulerede maskiner 'xlnx-zynqmp' er der tilføjet nye modeller til styring af CRF og APU. Emuleringen af udvidelserne FEAT_LVA2, FEAT_LVA (Large Virtual Address space) og FEAT_LPA (Large Physical Address space) er tilføjet.
- I den klassiske kodegenerator TCG (Tiny Code Generator) er understøttelsen af værter med CPU ARMv4 og ARMv5 ophørt, da der ikke er understøttelse for ikke-alignerede adgang til hukommelse og utilstrækkelig RAM til at køre QEMU.
- I emulatoren af RISC-V arkitekturen er understøttelsen af hypervisor KVM tilføjet, sammen med implementeringen af vektorextensionerne Vector 1.0 samt instruktionerne Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx og zhinx{min}. For de emulerede maskiner 'spike' er der tilføjet mulighed for at indlæse binære filer OpenSBI (RISC-V Supervisor Binary Interface). For de emulerede maskiner 'virt' er der implementeret mulighed for at bruge op til 32 CPU-kerner og støtte til AIA.
- I emulatoren for HPPA-arkitekturen er der mulighed for at bruge op til 16 vCPU, og grafikdriveren til brugermiljøerne HP-UX VDE/CDE er forbedret. Der er tilføjet mulighed for at ændre indlæsningsrækkefølgen for SCSI-enheder.
- I emulatoren af OpenRISC-arkitekturen for 'sim' boards er der tilføjet støtte til at bruge op til 4 CPU-kerner, indlæsning af eksternt initrd-billede og automatisk generering af en enhedstræ for den indlæste kerne.
- I emulatoren for PowerPC-arkitekturen for de emulerede maskiner 'pseries' er der implementeret mulighed for at starte gæstesystemer under kontrol af indlejret hypervisor KVM. Der er tilføjet støtte til enheden spapr-nvdimm. For de emulerede maskiner 'powernv' er der tilføjet støtte til XIVE2 interruptcontrolleren og PHB5 controllere, samt forbedret støtte til XIVE og PHB 3/4.
- I emulatoren for s390x-arkitekturen er der tilføjet støtte til z15 udvidelserne (Miscellaneous-Instruction-Extensions Facility 3).
Kilde: opennet.ru
