Projekt QEMU 9.0 bol vydaný. Ako emulátor vám QEMU umožňuje spustiť program vytvorený pre jednu hardvérovú platformu na systéme s úplne inou architektúrou, napríklad spustiť ARM aplikáciu na počítači kompatibilnom s x86. V režime virtualizácie QEMU je výkon vykonávania kódu v izolovanom prostredí blízky výkonu hardvérového systému vďaka priamemu vykonávaniu inštrukcií na CPU a použitiu hypervízora Xen alebo modulu KVM v... Linuxalebo modul NVMM v NetBSD.
Projekt pôvodne vytvoril Fabrice Bellard, aby poskytol možnosť spúšťať spustiteľné súbory kompilované pre platformu x86. Linux na architektúrach iných ako x86. V priebehu rokov vývoja bola pridaná podpora pre plnú emuláciu pre 14 hardvérových architektúr a počet emulovaných hardvérových zariadení presiahol 400. Pri príprave verzie 9.0 bolo vykonaných viac ako 3 200 zmien od 220 vývojárov.
Kľúčové vylepšenia pridané v QEMU 9.0:
- Ovládač virtio-blk poskytuje virtuálne blokové zariadenie pre virtuálne stroje, pridaná podpora pre viacúrovňový systém radenia do front (multiqueue), ktorý umožňuje oddelenie frontov pre rôzne blokové zariadenia, aby sa zabezpečil viacvláknový prístup na viacjadrových systémoch (rôzne fronty toho istého disku môžu byť spracované rôznymi I/O vláknami).
- Pridaná podpora pre vlastnosti 'backend_defaults', 'logical_block_size', 'physical_block_size', 'min_io_size', 'opt_io_size' a 'discard_granularity' v zariadení s blokom úložiska USB.
- Knižnica gdbstub, navrhnutá na vzdialené ladenie v GDB pomocou RSP (Remote Serial Protocol), pridala podporu pre fork-follow mód, operáciu siginfo:read a zachytávanie systémových volaní v užívateľskom priestore.
- Predalokačné backendy boli prispôsobené na prácu vo viacvláknovom režime a teraz môžu súčasne spracovávať požiadavky z viacerých vlákien. .
- Do nástrojov na migráciu virtuálnych strojov bol pridaný režim „mapped-ram“, ktorý zvyšuje efektivitu vytvárania snímok virtuálnych strojov. Vylepšená bola detekcia stránky s nulovou pamäťou, čo výrazne urýchlilo migráciu neaktívnych virtuálnych strojov, ak má systém podporu multifd. Pri migrácii na základe VFIO (Virtual Function I/O) je implementovaná podpora reštartu z uloženého stavu (kontrolný bod-reštart).
- Implementácia zariadenia ESP SCSI (am53c974/dc390) bola prepísaná.
- Pridaná podpora pre šifrovací algoritmus SM4 a umožnenie jeho použitia v ovládači blokového zariadenia „luks“.
- Do ovládača „luks“ bola pridaná podpora pre vytváranie a používanie súborov s uloženými hlavičkami LUKS.
- Emulátor architektúry ARM podporuje dosky L475E-IOT01A IoT, mp3-an536 (MPS3 s firmvérom AN536) a raspi4b (Raspberry Pi 4 Model B). Pridaná podpora pre emuláciu rozšírení procesorov ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) a NV2 (Enhanced Nested Virtualization). Rozšírili sa možnosti emulátorov Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx a virt board.
- Emulátor architektúry RISC-V bol aktualizovaný a teraz podporuje rozšírenia architektúry inštrukčných sád Zacas, amocas, RVA22, Zaamo, Zalrsc a Ztso. virtuálne stroje RISC-V teraz podporuje SMBIOS. Pre SRAT, SLIT, AIA a PLIC bola implementovaná podpora ACPI. Podpora RHCT bola aktualizovaná.
- Firmvér SeaBIOS-hppa bol aktualizovaný na verziu 16 v emulátore architektúry HPPA. Maximálna veľkosť pamäte sa zvýšila z 3 GB na 3840 MB. Pridaná podpora pre možnosť „--nodefaults“.
- Emulátor architektúry LoongArch teraz podporuje akceleráciu KVM a implementuje podporu pre vektorové rozšírenia inštrukčnej sady LSX/LASX.
- Emulátor architektúry s390x pridal podporu pre inštrukcie CVDG, CVB, CVBY a CVBG. Vylepšená bola emulácia LAE (Load Address Extended).
- Do emulátora architektúry 68k bolo pridané zariadenie nubus-virtio-mmio, ktoré umožňuje prístup k zariadeniam virtio z počítačov q800.
- K dispozícii je zostava s príznakom '-fzero-call-used-regs', ktorá vám umožňuje chrániť pred únikom informácií z funkcií a znížiť počet blokov vhodných na vytváranie modulov gadget ROP (Return-Oriented Programming) v exploitoch. Pridané je aj zostavenie s príznakom '-ftrivial-auto-var-init=zero' na automatickú inicializáciu všetkých premenných uložených v zásobníku na nulu.
- Spustenie QEMU s KVM teraz vyžaduje aspoň jadro Linux 4.4. Pre hostiteľov ARM sa plánuje v budúcnosti zvýšiť túto latku na verziu 4.19. Podpora pre používanie 32-bitových Windows ako hostiteľský operačný systém.
- Pridaná podpora pre OpenBSD 7.4.
Zdroj: opennet.ru
