Została zaprezentowana wersja projektu QEMU 10.2.0. Jako emulator, QEMU pozwala uruchomić program skompilowany dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, na przykład uruchomić aplikację dla ARM na komputerze kompatybilnym z x86. W trybie wirtualizacji w QEMU wydajność wykonania kodu w izolowanym środowisku zbliża się do systemu sprzętowego dzięki bezpośredniemu wykonaniu instrukcji na procesorze CPU i wykorzystaniu hipernadzorcy Xen lub modułu KVM w systemie Linux, lub modułu NVMM w NetBSD.
Projekt został pierwotnie stworzony przez Fabrice'a Bellarda z celem zapewnienia możliwości uruchamiania skompilowanych plików wykonywalnych Linux dla platformy x86 na architekturach innych niż x86. W ciągu lat rozwoju dodano wsparcie dla pełnej emulacji 14 architektur sprzętowych, a liczba emulowanych urządzeń sprzętowych przekroczyła 400. Przygotowując wersję 10.2.0, wprowadzono ponad 2200 zmian od 188 programistów.
Kluczowe ulepszenia wprowadzone w QEMU 10.2:
- Do backendu 9pfs, umożliwiającego użycie sieciowego systemu plików Plan 9 do dostępu jednej maszyny wirtualnej do innej, dodano wsparcie dla FreeBSD.
- Dodano nowy tryb migracji na żywo ‘cpr-exec’, który umożliwia zmniejszenie zużycia zasobów podczas aktualizacji maszyn wirtualnych i potencjalnie ponowne użycie istniejących stanów i połączeń podczas aktualizacji.
- Główną pętlę przetwarzania zdarzeń w QEMU przekształcono na wykorzystanie interfejsu asynchronicznego wejścia/wyjścia io_uring na systemach, które go wspierają, co prowadzi do zwiększenia wydajności.
- Udoskonalono emulację w trybie user-mode, umożliwiającym uruchamianie pojedynczych procesów skompilowanych dla innego CPU. Zrealizowano wywołanie systemowe fchmodat2, dodano wsparcie dla flag MADV_DONTDUMP i MADV_DODUMP, poprawiono wsparcie dla architektur aarch64, hppa i microblaze.
- W emulatorze architektury ARM dodano wsparcie dla modelu płyty amd-versal2-virt z realizacją wirtualnego SoC AMD Versal. Udoskonalono wsparcie dla płyt ‘AST2600’, ‘AST2700’, ‘AST1030’ oraz ‘xlnx-zynqmp’. Zrealizowano emulację rozszerzeń CPU FEAT_SCTLR2, FEAT_TCR2, FEAT_CSSC, FEAT_LSE128, FEAT_ATS1A, FEAT_RME_GPC2, FEAT_AIE, FEAT_MEC i FEAT_GCS.
- W emulatorze architektury HPPA dodano możliwość emulacji stacji roboczej HP 715/64, kontrolera SCSI NCR 53c710 i kontrolera wejścia/wyjścia HP LASI.
- W emulatorze architektury PowerPC dodano wsparcie dla CPU PowerNV11 i PPE42. Dla sprzętu pSeries wdrożono mechanizm FADUMP (Firmware-Assisted Dump) do tworzenia zrzutów stanu po awarii systemu.
- W emulatorze architektury RISC-V wdrożono interfejs API MonitorDef HMP, do wersji 1.7 zaktualizowano OpenSBI (Open Supervisor Binary Interface), wprowadzono wiele poprawek.
- W emulatorze architektury s390x w celu zwiększenia wydajności wykorzystano technologię podmiany przerwań wirtualnych za pomocą irqfd.
Źródło: opennet.ru
