Projektet QEMU 9.1 er blevet released. Som emulator giver QEMU mulighed for at køre programmer, der er bygget til én hardwareplatform, på et system med en helt anden arkitektur, for eksempel at køre et ARM-program på en x86-kompatibel PC. I virtualiseringsmodus er ydelsen ved kørsel af kode i et isoleret miljø nær den hardwarebaserede systemydelse takket være direkte udførelse af instruktioner på CPU'en og brug af hypervisoren Xen eller KVM-modulet i Linux, eller NVMM-modulet i NetBSD.
Projektet blev oprindeligt skabt af Fabrice Bellard med det formål at muliggøre kørsel af x86-compiled Linux eksekverbare filer på arkitekturer, der adskiller sig fra x86. Gennem årene er der blevet tilføjet support til fuld emulering for 14 hardwarearkitekturer, og antallet af emulerede hardwareenheder har overskredet 400. I forberedelsen til version 9.1 er der foretaget over 2800 ændringer fra 263 udviklere.
Nøgleforbedringer tilføjet i QEMU 9.1:
- I værktøjet til migrering af gæstesystemer er der blevet implementeret understøttelse af acceleration af data compression ved hjælp af IAA (Intel In-Memory Analytics Accelerator) teknologi eller UADK (User Space Accelerator Development Kit). Understøttelsen af genopretning efter fejl ved migration i postcopy-tilstand er forbedret.
- I virtio-mekanismen, der bruges til at organisere interaktionen mellem gæstesystemerne og værtsystemet, er der tilføjet støtte til funktionen VIRTIO_F_NOTIFICATION_DATA, som gør det muligt for drivere på gæstesystemernes side at overføre ekstra data sammen med de sendte notifikationer. Funktionen kan for eksempel bruges til at sende debuggingdata eller for at optimere ydeevnen.
- I guest-agenten for Linux-systemer er der tilføjet kommandoen guest-network-get-route, og for Windows-systemer er der tilføjet kommandoerne guest-ssh-*. Kommandolinjegrænsefladen har fået udvidede muligheder for konfiguration af 'allowed' og 'blocked' kommandoerne.
- I emuleringen af ARM-arkitekturen er der blevet tilføjet støtte til processorudvidelserne EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. Ved emulering af hukommelsesstyringsenheden SMMUv3 (System Memory Management Unit) er der implementeret støtte til nested og to-niveau hukommelsessider. For Xilinx Zynq boards er der tilføjet støtte til emulering af multiprocessor konfigurationer, DM163 display controller og cache controller.
- I emulatoren for LoongArch-arkitekturen er der mulighed for direkte indlæsning af kerneafbilder i ELF-format og tilføjet support til at køre op til 256 CPU'er ved hjælp af extioi-udvidelsen. Mulighederne for debugging er forbedret.
- I emulatoren for RISC-V-arkitekturen er der tilføjet support for processorudvidelserne Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs og Smcntrpmf samt version 1.13 af specifikationen for det privilegerede instruktionssæt. Mulighederne for debugging er blevet forbedret.
- I emulatoren for SPARC-arkitekturen er der tilføjet support for processorudvidelserne FMAF, IMA, VIS3 og VIS4.
- I emulatoren for x86-arkitekturen til hypervisoren KVM er der implementeret mulighed for at starte gæstesystemer ved hjælp af processorudvidelsen AMD SEV-SNP (Secure Nested Paging), som sikrer sikker håndtering af indlejrede hukommelsesside-tabeller. Der er implementeret support til emulering af CPU'er baseret på mikroarkitekturerne Icelake-Server-v7, SapphireRapids-v3 og SierraForest.
- Sårbarheden (CVE-2024-7409) er blevet rettet i serveren netværksbloklagringsenheder (Network Block Devices), som muliggør, at manipulationer i gæstesystemet kan føre til, at QEMU afsluttes uventet under udførelse af nbd-server-stop, selvom klienten ikke har TLS-nøgler til at forbinde til NBD-serveren.
Kilde: opennet.ru
