Bol spustený projekt QEMU vo verzii 9.1. Ako emulátor umožňuje QEMU spustiť program skompilovaný pre jednu hardvérovú platformu na systéme s úplne inou architektúrou, napríklad spustiť aplikáciu pre ARM na počítači kompatibilnom s x86. V režime virtualizácie dosahuje QEMU výkon kódu v izolovanom prostredí blízky hardvérovej sústave vďaka priamemu vykonávaniu pokynov na CPU a využívaniu hypervízora Xen alebo modulu KVM v Linuxe, alebo modulu NVMM v NetBSD.
Projekt bol pôvodne vytvorený Fabrisom Bellardom s cieľom umožniť spúšťanie skompilovaných súborov Linux pre platformu x86 na architektúrach odlišných od x86. Po rokoch vývoja bola pridaná podpora plnej emulácie pre 14 hardvérových architektúr a počet emulovaných hardvérových zariadení presiahol 400. Pri príprave verzie 9.1 bolo vykonaných viac ako 2800 zmien od 263 vývojárov.
Kľúčové vylepšenia pridané do QEMU 9.1:
- Do nástrojov na migráciu hostiteľských systémov bola pridaná podpora urýchlenia operácie kompresie dát pomocou technológie IAA (Intel In-Memory Analytics Accelerator) alebo UADK (User Space Accelerator Development Kit). Zlepšila sa podpora obnovenia po neúspešnej migrácii v režime postcopy.
- Vo mechanizme virtio, ktorý sa používa na organizovanie interakcie medzi hostiteľskými systémami a hosťovými systémami, bola pridaná podpora funkcie VIRTIO_F_NOTIFICATION_DATA, ktorá umožňuje ovládačom na strane hosťových systémov odosielať dodatočné dáta spolu s posielanými oznámeniami. Túto funkciu je možné využiť napríklad na odosielanie ladacích údajov alebo na optimalizáciu výkonu.
- V guest-agente pre systém Linux bola pridaná príkaz guest-network-get-route, a pre systémy Windows boli pridané príkazy guest-ssh-*. Rozšírili sa možnosti prispôsobenia príkazov "allowed" a "blocked" v príkazovom rozhraní.
- V emulátore architektúry ARM bola pridaná podpora rozšírení procesora EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. Pri emulácii bloku riadenia pamäte SMMUv3 (System Memory Management Unit) bola zavedená podpora vložených a dvojúrovňových strán pamäte. Pre dosky Xilinx Zynq bola pridaná podpora emulácie konfigurácií s viacerými procesormi, displejového kontroléra DM163 a kontroléra cache.
- V emulátore architektúry LoongArch bola zabezpečená možnosť priameho načítania obrazov jadra vo formáte ELF a pridaná podpora spustenia až 256 CPU pomocou rozšírenia extioi. Vylepšené možnosti pre ladenie.
- V emulátore architektúry RISC-V bola pridaná podpora procesorových rozšírení Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs a Smcntrpmf, ako aj verzia 1.13 špecifikácie architektúry privilegovaných príkazových sád. Vylepšené možnosti pre ladenie.
- V emulátore architektúry SPARC bola pridaná podpora procesorových rozšírení FMAF, IMA, VIS3 a VIS4.
- V emulátore architektúry x86 pre hypervízor KVM Zrealizovaná možnosť spúšťania hostiteľských systémov s využitím procesorového rozšírenia AMD SEV-SNP (Secure Nested Paging), ktoré zabezpečuje bezpečnú prácu s vloženými tabuľkami strán pamäte. Zrealizovaná podpora emulácie CPU na báze mikroarchitektúr Icelake-Server-v7, SapphireRapids-v3 a SierraForest.
- Vyriešená zraniteľnosť (CVE-2024-7409) v serveri blokových zariadeniach NBD (Network Block Device), ktorá umožňuje prostredníctvom manipulácií v hostiteľskom systéme dosiahnuť havarijné ukončenie QEMU počas vykonávania operácie nbd-server-stop, aj keď klient nemá TLS kľúče na pripojenie k serveru NBD.
Zdroj: opennet.ru
