Predstavuje sa vydanie projektu QEMU 7.2. Ako emulátor vám QEMU umožňuje spustiť program vytvorený pre jednu hardvérovú platformu na systéme s úplne odlišnou architektúrou, napríklad spustiť aplikáciu ARM na počítači kompatibilnom s x86. V režime virtualizácie v QEMU je výkon vykonávania kódu v izolovanom prostredí blízky hardvérovému systému vďaka priamemu vykonávaniu inštrukcií na CPU a použitiu Xen hypervízora alebo KVM modulu.
Projekt pôvodne vytvoril Fabrice Bellard, aby umožnil spustiteľným súborom Linuxu vytvoreným pre platformu x86 bežať na architektúrach iných ako x86. V priebehu rokov vývoja pribudla plná podpora emulácie pre 14 hardvérových architektúr, počet emulovaných hardvérových zariadení prekročil 400. V rámci príprav na verziu 7.2 bolo vykonaných viac ako 1800 zmien od 205 vývojárov.
Kľúčové vylepšenia pridané v QEMU 7.2:
- Emulátor x86 v klasickom generátore kódu TCG pridal podporu pre inštrukcie AVX, AVX2, F16C, FMA3 a VAES, ako aj optimalizácie výkonu súvisiace s používaním pokynov SSE. Pre KVM bola pridaná podpora pre mechanizmus sledovania ukončenia virtuálneho počítača („notify vmexit“), ktorý vám umožňuje obísť chyby v CPU, ktoré môžu viesť k zamrznutiu.
- Emulátor ARM podporuje Cortex-A35 CPU a procesorové rozšírenia ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardvérové ovládanie príznaku prístupu a „špinavého“ stavu) a E0PD (zabránenie prístupu EL0 k rozdeleným adresovým mapám).
- Emulátor LoongArch pridáva podporu pre fw_cfg DMA, hot-plug pamäť a emuláciu zariadenia TPM (Trusted Platform Module).
- Emulátor architektúry OpenRISC implementuje platformu „virt“ na testovanie zariadení a ich použitie v systémoch kontinuálnej integrácie. Bola implementovaná podpora pre viacvláknové vykonávanie klasického generátora kódu TCG (Tiny Code Generator).
- Emulátor architektúry RISC-V v emulovaných strojoch „virt“ má schopnosť načítať firmvér z pflash v režime S. Vylepšená práca so stromom zariadení.
- Emulátor 390x poskytuje podporu pre MSA5 (Message-Security-Assist Extension 5 s inštrukciou PRNO na generovanie pseudonáhodných čísel), inštrukcie KIMD/KLM (implementácia SHA-512) a rozšírenú interpretáciu zPCI pre hosťovské systémy založené na hypervízore KVM. .
- Backendy pre prácu s pamäťou poskytujú predbežnú alokáciu pamäte s prihliadnutím na architektúru NUMA.
- Bola posilnená kontrola hlavičiek zariadení so šifrovaným blokom LUKS a bola pridaná možnosť vytvárať obrázky LUKS na macOS.
- Backend 9pfs, ktorý umožňuje použitie sieťového súborového systému Plan 9 na prístup k jednému virtuálnemu stroju k druhému, prešiel na používanie hashu GHashTable v tabuľke identifikátorov, čo v niektorých situáciách viedlo k 6-12-násobnému zvýšeniu výkonu.
- Pridaný nový stream backendov netdev a dgram.
- Do agenta bola pridaná podpora FreeBSD pre hostí na báze ARM.
- Zostavy GUI pre macOS poskytujú možnosť zahrnúť rozhrania založené na Cocoa a SDL/GTK do jedného spustiteľného súboru.
- Vstavaný submodul „slirp“ bol odstránený, namiesto neho sa odporúča použiť systémovú knižnicu libslirp.
- Z dôvodu nedostatku testovacích schopností bola podpora pre hostiteľské systémy s 32-bitovými procesormi MIPS využívajúcimi poradie bajtov Big Endian zastaraná.
Zdroj: opennet.ru