Vydání emulátoru QEMU 9.0.0

Byl zveřejněn release projektu QEMU 9.0. Jako emulátor umožňuje QEMU spustit program, který byl sestaven pro jednu hardwarovou platformu, na systému s úplně jinou architekturou, například spustit aplikaci pro ARM na PC kompatibilním s x86. V režimu virtualizace nabízí QEMU výkon kódu v izolovaném prostředí blízký hardwarové platformě 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í shromážděných pro platformu x86 spustitelných souborů Linux 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 9.0 bylo implementováno více než 2700 změn od 220 vývojářů.

Klíčová zlepšení přidaná do QEMU 9.0:

  • Do ovladače virtio-blk, který poskytuje virtuální blokové zařízení pro virtuálních strojů, byla přidána podpora víceúrovňového systému front (multiqueue), což umožňuje rozdělit fronty pro různá bloková zařízení a zajistit vícetréninkový přístup na vícejádrových systémech (různé fronty jednoho disku mohou být zpracovávány různými vlákny vstupu/výstupu).
  • Do blokového zařízení usb-storage byla přidána podpora vlastností ‘backend_defaults’, ‘logical_block_size’, ‘physical_block_size’, ‘min_io_size’, ‘opt_io_size’ a ‘discard_granularity’.
  • Do knihovny gdbstub, určené pro vzdálené ladění v GDB s využitím protokolu RSP (Remote Serial Protocol), byla přidána podpora režimu fork-follow, operace siginfo:read a zachycování systémových volání v uživatelském prostoru.
  • Backendy pro předběžné přidělování paměti (preallocation) byly přizpůsobeny pro práci v multithreadovém režimu a nyní mohou současně zpracovávat požadavky z více vláken.
  • Do nástrojů pro migraci virtuálních strojů byl přidán režim „mapped-ram“, který zvyšuje efektivitu vytváření snapshotů virtuálních strojů. Bylo zlepšeno určení nulové stránky paměti, což značně urychlilo migraci neaktivních virtuálních strojů za přítomnosti podpory multifd v systému. Při migraci na základě VFIO (Virtual Function I/O) byla implementována podpora restartu ze uloženého stavu (checkpoint-restart).
  • Byla přepracována implementace zařízení ESP SCSI (am53c974/dc390).
  • Byla přidána podpora šifrovacího algoritmu SM4 a byla zajištěna možnost jeho použití v ovladači blokového zařízení ‘luks’.
  • Do ovladače ‘luks’ byla přidána podpora pro vytváření a používání souborů se zachovanými hlavičkami LUKS.
  • V emulátoru architektury ARM byla zavedena podpora desek L475E-IOT01A IoT, mp3-an536 (MPS3 s firmwarem AN536) a raspi4b (Raspberry Pi 4 Model B). Byla přidána podpora emulace procesorových rozšíření ECV (Enhanced Counter Virtualization), NV (Nested Virtualization) a NV2 (Enhanced Nested Virtualization). Možnosti emulátorů desek Freescale i.MX6, Allwinner R40, Bananapi, Raspberry Pi, npcm7xx a virt byly rozšířeny.
  • Do emulátoru architektury RISC-V byla přidána podpora rozšíření architektury instrukční sady Zacas, amocas, RVA22, Zaamo, Zalrsc a Ztso. V virtual machines RISC-V byla zajištěna podpora SMBIOS. Pro SRAT, SLIT, AIA a PLIC byla implementována podpora ACPI. Byla aktualizována podpora tabulek RHCT.
  • V emulátoru architektury HPPA do verze 16 byla aktualizována firmware SeaBIOS-hppa. Maximální velikost paměti byla zvýšena z 3 GB na 3840 MB. Byla přidána podpora pro možnost „—nodefaults”.
  • V emulátoru architektury LoongArch byla zavedena podpora akcelerace KVM a byla implementována podpora vektorových rozšíření instrukční sady LSX/LASX.
  • V emulátoru architektury s390x byla přidána podpora instrukcí CVDG, CVB, CVBY a CVBG. Byla vylepšena emulace LAE (Load Address Extended).
  • V emulátoru architektury 68k bylo přidáno zařízení nubus-virtio-mmio, které umožňuje přístup k zařízení virtio z počítačů q800.
  • Bylo zajištěno sestavení s přepínačem ‘-fzero-call-used-regs’, který chrání proti úniku informací z funkcí a snižuje počet bloků vhodných pro vytváření ROP gadgetů (Return-Oriented Programming) v exploitech. Bylo také přidáno sestavení s přepínačem ‘-ftrivial-auto-var-init=zero’ pro automatickou inicializaci všech proměnných uložených na zásobníku na nulovou hodnotu.
  • Pro spuštění QEMU s KVM je nyní vyžadováno minimálně jádro Linux 4.4. Pro ARM hostitele plánují tuto hranici v budoucnu zvýšit na verzi 4.19. Byla ukončena podpora 32bitových Windows jako hostitelských operačních systémů.
  • Byla přidána podpora OpenBSD 7.4.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster