Vydání emulátoru QEMU 7.2

Bylo představeno vydání projektu QEMU 7.2. Jako emulátor vám QEMU umožňuje spouštět program zkompilovaný pro jednu hardwarovou platformu na systému se zcela odlišnou architekturou, například spouštět aplikaci ARM na počítači kompatibilním s x86. V režimu virtualizace v QEMU se výkon provádění kódu v izolovaném prostředí blíží výkonu hardwarového systému díky přímému provádění instrukcí na CPU a použití hypervizoru Xen nebo modulu KVM.

Projekt původně vytvořil Fabrice Bellard, aby umožnil spustitelné soubory Linuxu vytvořené pro platformu x86 na architekturách jiných než x86. V průběhu let vývoje byla přidána plná podpora emulace pro 14 hardwarových architektur, počet emulovaných hardwarových zařízení přesáhl 400. V rámci přípravy na verzi 7.2 bylo provedeno více než 1800 změn od 205 vývojářů.

Klíčová vylepšení přidaná v QEMU 7.2:

  • Emulátor x86 v klasickém generátoru kódu TCG přidal podporu pro instrukce AVX, AVX2, F16C, FMA3 a VAES a také optimalizace výkonu související s používáním instrukcí SSE. Pro KVM byla přidána podpora pro mechanismus pro sledování ukončení virtuálního stroje („notify vmexit“), který umožňuje obejít chyby v CPU, které mohou vést k zablokování.
  • Emulátor ARM podporuje Cortex-A35 CPU a rozšíření procesoru ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (hardwarová kontrola příznaku přístupu a „špinavého“ stavu) a E0PD (zabraňující přístupu EL0 k rozděleným mapám adres).
  • Emulátor LoongArch přidává podporu pro fw_cfg DMA, hot-plug paměť a emulaci zařízení TPM (Trusted Platform Module).
  • Emulátor architektury OpenRISC implementuje platformu „virt“ pro testování zařízení a jejich použití v systémech kontinuální integrace. Byla implementována podpora pro vícevláknové spouštění klasického generátoru kódu TCG (Tiny Code Generator).
  • Emulátor architektury RISC-V v emulovaných strojích 'virt' má schopnost načíst firmware z pflash v S-módu. Vylepšená práce se stromem zařízení.
  • Emulátor 390x poskytuje podporu pro 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 hostované systémy založené na hypervizoru KVM. .
  • Backendy pro práci s pamětí poskytují předběžné přidělení paměti s ohledem na architekturu NUMA.
  • Byla posílena kontrola hlaviček zařízení s šifrovanými bloky LUKS a byla přidána možnost vytvářet obrázky LUKS na macOS.
  • Backend 9pfs, který umožňuje použití síťového souborového systému Plan 9 pro přístup k jednomu virtuálnímu stroji k druhému, přešel na používání hashe GHashTable v tabulce identifikátorů, což v některých situacích vedlo k 6-12násobnému zvýšení výkonu.
  • Přidán nový stream backendů netdev a dgram.
  • Do agenta byla přidána podpora FreeBSD pro hosty založené na ARM.
  • Sestavení GUI pro macOS poskytují možnost zahrnout rozhraní založená na Cocoa a SDL/GTK do jednoho spustitelného souboru.
  • Vestavěný submodul „slirp“ byl odstraněn, místo něj se doporučuje používat systémovou knihovnu libslirp.
  • Kvůli nedostatku testovacích možností byla podpora pro hostitelské systémy s 32bitovými procesory MIPS využívající pořadí bajtů Big Endian ukončena.

Zdroj: opennet.ru

Přidat komentář