Byl vydán projekt QEMU 7.2. Jako emulátor umožňuje QEMU spustit program, který byl zkompilován pro jednu hardwarovou platformu, na systému s úplně jinou architekturou, například spustit aplikaci pro ARM na počítači kompatibilním s x86. V režimu virtualizace má QEMU výkon kódu běžícího v izolovaném prostředí blízký hardwarovému systému díky přímému provádění instrukcí na CPU a zapojení hypervisoru Xen nebo modulu KVM.
Projekt byl původně vytvořen Fabrice Bellardem s cílem poskytnout možnost spouštět spustitelné soubory Linux zkompilované pro platformu x86 na architekturách odlišných od x86. Během let vývoje byla přidána podpora plné emulace pro 14 hardwarových architektur a počet emulovaných hardwarových zařízení překročil 400. Při přípravě verze 7.2 bylo provedeno více než 1800 změn od 205 vývojářů.
Hlavní vylepšení přidaná do QEMU 7.2:
- V emulátoru architektury x86 byla v klasickém generátoru kódu TCG přidána podpora instrukcí AVX, AVX2, F16C, FMA3 a VAES, a také byla provedena optimalizace výkonu spojená s používáním instrukcí SSE. Pro KVM byla přidána podpora mechanismu sledování výstupu z virtuálního stroje („notify vmexit“), což umožňuje obcházet chyby v CPU, které mohou vést k zamrznutí systému.
- V emulátoru ARM byla implementována podpora CPU Cortex-A35 a procesorových rozšíření ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardwarová správa přístupových flagů a stavu „dirty“) a E0PD (zabránění přístupu EL0 k odděleným mapám adres).
- V emulátoru LoongArch byla přidána podpora fw_cfg DMA, horkého připojení paměti a emulace zařízení TPM (Trusted Platform Module).
- V emulátoru architektury OpenRISC byla realizována platforma ‘virt’ pro provádění testů zařízení a použití v systémech kontinuální integrace. Byla implementována podpora vícestupňového provádění klasického generátoru kódu TCG (Tiny Code Generator).
- V emulátoru architektury RISC-V byla v emulovaných strojích ‘virt’ realizována možnost načítání firmwaru z pflash v S-režimu (S-mode). Byla zlepšena práce s device tree.
- Emulátor architektury 390x nyní podporuje rozšíření MSA5 (Message-Security-Assist Extension 5 s instrukcí PRNO pro generování pseudonáhodných čísel), instrukce KIMD/KLM (implementace SHA-512) a rozšířenou interpretaci zPCI pro hostitelské systémy založené na hypervizoru KVM.
- V backendu pro práci s pamětí bylo zajištěno předběžné přidělení paměti s ohledem na architekturu NUMA.
- Byla posílena kontrola hlaviček šifrovaných blokových zařízení LUKS a přidána možnost vytvářet obrazy LUKS v macOS.
- V backendu 9pfs, který umožňuje používat síťový souborový systém Plan 9 pro přístup jedné virtuální mašiny k jiné, došlo k přechodu na používání hash tabulky GHashTable v tabulce identifikátorů, což v některých situacích vedlo k zvýšení výkonu o 6-12krát.
- Byly přidány nové netdev backendy stream a dgram.
- V agentu pro hostitelské systémy založené na architektuře ARM byla přidána podpora FreeBSD.
- Ve verzích GUI pro macOS byla umožněna integrace rozhraní založených na Cocoa a SDL/GTK do jednoho spustitelného souboru.
- Byl odstraněn zabudovaný subsystém "slirp", místo kterého se doporučuje používat systémovou knihovnu libslirp.
- Z důvodu nemožnosti testování byla prohlášena za zastaralou podpora hostitelských systémů s 32bitovými procesory MIPS, které používají pořadí bajtů "Big endian".
Zdroj: opennet.ru
