Byl vydán projekt QEMU 11.0.0. Jako emulátor QEMU umožňuje spustit program vytvořený pro jednu hardwarovou platformu na systému s úplně jinou architekturou, například provést aplikaci pro ARM na PC kompatibilním s x86. V režimu virtualizace v QEMU je výkon při vykonávání kódu v izolovaném prostředí blízko hardwarovému systému díky přímému vykonávání instrukcí na CPU a zapojení hypervizoru Xen nebo modulu KVM v Linuxu, nebo modulu NVMM v NetBSD.
Projekt byl původně vytvořen Fabrice Bellard s cílem umožnit spuštění vykonatelných souborů Linuxu, které jsou určeny 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, počet emulovaných hardwarových zařízení přesáhl 400. Při přípravě verze 11.0.0 bylo provedeno více než 2500 změn od 237 vývojářů.
Klíčové vylepšení přidané do QEMU 11.0:
- Byla odstraněna podpora 32bitových hostitelských systémů, která byla vyhlášena za zastaralou v dubnu loňského roku ve verzi QEMU 10.0. V prosincovém vydání 10.2 byla v generátoru kódu TCG (Tiny Code Generator) ukončena podpora platforem mips32 a ppc32, a ve verzi QEMU 11.0 byly odstraněny zbývající platformy i386, arm, ppc a riscv32, a také byla vyčištěna kódová základna a systém sestavení od komponent pro 32bitové hostitele.
- Byl implementován urychlovač virtualizace 'nitro' ('-accel nitro') a nový typ emulovaných systémů 'nitro', který umožňuje spouštět v QEMU izolované enklávy na základě technologie důvěrného výpočtu AWS Nitro Enclave, například pro lokální testování prostředí Nitro Enclave v QEMU. V AWS EC2 technologie Nitro Enclave umožňuje spouštět v virtuálním stroji vnořené izolované enklávy pro práci s důvěrnými daty, přičemž jim přiděluje část svých prostředků.
- Byla zlepšena podpora urychlovačů virtualizace MSHV (Microsoft Hypervisor) a WHPX (Microsoft Windows Hypervisor Platform Extensions).
- Při použití hypervizoru KVM ('-accel kvm') byla přidána podpora virtualizace rozšíření Intel CET (Control-flow Enforcement Technology) pro aplikaci v virtual machines ochraně proti exploity využívajícími metody návratově orientovaného programování (ROP — Return-Oriented Programming). Také byla přidána podpora restartu důvěrných virtuálních strojů, používající pro šifrování paměti rozšíření AMD SEV-SNP (Secure Encrypted Virtualization — Secure Nested Paging) a Intel TDX (Trust Domain Extensions).
- Do zařízení VirtIO-GPU, které zajišťuje provoz virtuálního GPU, byla přidána možnost nastavit různá rozlišení obrazovky pro různé výstupní zařízení.
- Ve VirtIO-GPU byla přidána podpora kontextů DRM (Direct Rendering Manager native context), které umožňují zvýšit výkon práce s virtuálním GPU z hostitelského systému díky přímému zasílání příkazů do reálného hostitelského GPU. Podpora kontextů DRM se aktivuje při použití nového zařízení virtio-gpu-gl s možností „drm_native_context=on“. Na rozdíl od kontextů Virgl a Venus, které fungují na úrovni API OpenGL a Vulkan, je kontext DRM realizován na úrovni UAPI jádra Linux.
- Byla přidána možnost používat jazyk C++ pro vývoj pluginů pro generátor kódu TCG (Tiny Code Generator).
- Do blokového ovladače NFS byla přidána podpora kompilace s knihovnou libnfs 6.
- Do blokového ovladače curl byla přidána volba „force-range“ pro vynucení použití HTTP hlavičky „Range“ při stahování obrázků bez předchozí kontroly její podpory samostatným požadavkem s hlavičkou HEAD.
- Ve blokovém ovladači FUSE byla deaktivována synchronní zpracování exportních operací, které vedly k zablokování spuštění virtuálního stroje do dokončení zpracování dalších FUSE požadavků. Byla přidána možnost využití více vstupních/výstupních vláken (iothread) při provádění exportu v FUSE.
- Do emulátoru architektury x86 byla přidána podpora CPU Intel Diamond Rapids („Xeon 7“).
- Do emulátoru architektury ARM byly přidány rozšíření procesorů FEAT_ASID2 a FEAT_E2H0. V generátoru kódu TCG byla implementována emulace rozšíření SME (Scalable Matrix Extension).
- Do emulátoru architektury HPPA byla přidána podpora emulace 64bitových CPU s 40- a 44bitovým adresním prostorem. Pomocí SeaBIOS-hppa 24 byla zajištěna inicializace PCI kontroléru Astro, což umožňuje používat PCI grafické karty v 64bitových systémech.
- V emulátoru architektury LoongArch se objevila možnost migrace PMU (Performance Monitoring Unit) při použití hypervisoru KVM. V generátoru kódu TCG byla implementována emulace rozšíření LA v1.1, sc.q a llacq/screl, stejně jako instrukcí FRECIP a DRECIP pro výpočet inverzních hodnot.
- Do emulátoru architektury PowerPC byla přidána podpora snapshotů.
- V emulátoru architektury RISC-V byla zavedena podpora CPU MIPS P8700 a rozšíření instrukčního souboru Zilsd, Zclsd, ZALASR a Smpmpmt.
- V emulátoru architektury s390 byla přidána podpora pro zavádění z zařízení virtio-blk-pci a byla implementována emulace instrukce „DIVIDE TO INTEGER“.
- Byla přijata oprava, která zkracuje latenci při práci s fdmon (monitorování popisovačů souborů) v režimu „aio=io_uring“ a když je systém v nečinnosti (idle), 50-80krát.
Zdroj: opennet.ru
