Wersja QEMU 10.0.0 została wydana. Jako emulator, QEMU umożliwia uruchomienie programu stworzonego dla jednej platformy sprzętowej w systemie o zupełnie innej architekturze, na przykład uruchomienie aplikacji ARM na komputerze zgodnym z architekturą x86. W trybie wirtualizacji QEMU wydajność wykonywania kodu w odizolowanym środowisku jest zbliżona do wydajności systemu sprzętowego dzięki bezpośredniemu wykonywaniu instrukcji na procesorze i wykorzystaniu hiperwizora Xen lub modułu KVM. Linuxlub moduł NVMM w NetBSD.
Projekt został pierwotnie stworzony przez Fabrice'a Bellarda w celu zapewnienia możliwości uruchamiania plików wykonywalnych skompilowanych dla platformy x86. Linux na architekturach innych niż x86. W ciągu lat rozwoju dodano obsługę pełnej emulacji dla 14 architektur sprzętowych, a liczba emulowanych urządzeń przekroczyła 400. Podczas przygotowywania wersji 10.0 wprowadzono ponad 2800 zmian przez 211 programistów.
Kluczowe ulepszenia dodane w QEMU 10.0:
- Sterownik virtio-scsi zapewnia wirtualny kontroler SCSI (karta hosta SCSI) dla maszyna wirtualnaDodano obsługę wielopoziomowego systemu kolejkowania (multiqueue), umożliwiającą rozdzielenie kolejek dla różnych urządzeń blokowych w celu obsługi dostępu wielowątkowego w systemach wielordzeniowych (różne kolejki dla jednego dysku mogą być przetwarzane przez różne wątki wejścia/wyjścia). W porównaniu ze sterownikiem wirtualnego urządzenia blokowego (virtio-blk), wirtualny kontroler SCSI jest nieco wolniejszy pod względem wydajności, ale pozwala na obsługę ponad 28 dysków.
- Technologia VFIO (Virtual Function I/O) zapewnia ulepszoną obsługę przejścia IGD (Integrated Graphics Device) dla zintegrowanych układów GPU stosowanych w procesorach Intel 11. (Rocket Lake) i 12. (Alder Lake) generacji. Dodano obsługę starszych procesorów graficznych ATI (x550). Wprowadzono podstawowe wsparcie dla PCI PM (Power Management).
- Dokumentacja protokołu QEMU Machine Protocol (QMP), który umożliwia aplikacjom sterowanie QEMU, została znacząco zmieniona i rozszerzona.
- Dodano nowy tryb migracji na żywo „cpr-transfer” (CheckPoint i ponowne uruchomienie), umożliwiający przeniesienie systemu gościa do nowej instancji QEMU uruchomionej na tym samym hoście. Tryb ten minimalizuje czas zawieszenia poprzez mapowanie pamięci systemu gościa w nowej wirtualnej przestrzeni adresowej QEMU bez kopiowania zawartości.
- Dodano urządzenia graficzne „apple-gfx-pci” i „apple-gfx-mmio”, które korzystają z infrastruktury ParavirtualizedGraphics udostępnionej w macOS Do sprzętowej akceleracji grafiki w systemach gości. Pierwszy sterownik jest przeznaczony do urządzeń x86-64, a drugi do ARM64.
- Emulator architektury x86 obsługuje teraz modele procesorów Intel Xeon Clearwater Forest i Sierra Forest v2. Przyspieszono emulację instrukcji manipulacji danymi łańcuchowymi.
- Emulator architektury ARM obsługuje teraz płyty ewaluacyjne NPCM8445 i i.MX 8M Plus EVK. Dodano emulację rozszerzeń FEAT_AFP, FEAT_RPRES i FEAT_XS, a także fizycznych i wirtualnych timerów EL2. Wycofano obsługę procesorów Arm PXA2xx i emulacji instrukcji iwMMXt.
- Emulator architektury RISC-V umożliwia emulację płyt Microblaze V, procesorów Ascalon i RV64 Xiangshan Nanhu. Dodano obsługę rozszerzeń architektury zestawu poleceń „svukte”, „ssstateen”, „smrnmi”, „smdbltrp”/„ssdbltrp”, „supm”, „sspm”, a także znaczników translacji IOMMU i urządzeń riscv-iommu-sys.
- Emulator architektury HPPA umożliwia emulację płyt Diva GSP BMC. Oprogramowanie układowe SeaBIOS-hppa zostało zaktualizowane do wersji 18. Zwiększono prędkość transmisji. Ulepszony kod resetowania wirtualnego procesora. W systemach 64-bitowych zapewniona jest emulacja konfiguracji z rozmiarem pamięci do 256 GB.
- Emulator architektury LoongArch obsługuje teraz podłączanie procesora na gorąco. Zaimplementowano parawirtualizowany interfejs IPI (inter-processor interrupt). Zaimplementowano śledzenie limitu czasu alokacji zasobów hypervisora. KVMDodano obsługę wirtualnego routingu przerwań zewnętrznych (extioi).
- Emulator architektury s390x dodaje obsługę procesorów mainframe 17. generacji i implementuje obsługę virtio-mem. Aby poprawić wydajność, dodano możliwość interakcji z urządzeniami PCI z pominięciem modułu IOMMU.
Źródło: opennet.ru
