Wydanie emulatora QEMU 7.0

Przedstawiono wydanie projektu QEMU 7.0. Jako emulator QEMU umożliwia uruchomienie programu zbudowanego dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, np. uruchomienie aplikacji ARM na komputerze zgodnym z architekturą x86. W trybie wirtualizacji w QEMU wydajność wykonywania kodu w izolowanym środowisku jest zbliżona do systemu sprzętowego ze względu na bezpośrednie wykonywanie instrukcji na CPU oraz zastosowanie hiperwizora Xen lub modułu KVM.

Projekt został pierwotnie stworzony przez Fabrice'a Bellarda, aby umożliwić uruchamianie plików wykonywalnych Linuksa zbudowanych dla platformy x86 na architekturach innych niż x86. Przez lata rozwoju dodano pełną obsługę emulacji dla 14 architektur sprzętowych, liczba emulowanych urządzeń sprzętowych przekroczyła 400. W ramach przygotowań do wersji 7.0 dokonano ponad 2500 zmian od 225 programistów.

Kluczowe ulepszenia dodane w QEMU 7.0:

  • Emulator x86 dodaje obsługę zestawu instrukcji Intel AMX (Advanced Matrix Extensions) zaimplementowanego w procesorach serwerowych Intel Xeon Scalable. AMX oferuje nowe niestandardowe rejestry TMM „TILE” i instrukcje do manipulowania danymi w tych rejestrach, takie jak TMUL (Tile matrix MULTiply) do mnożenia macierzy.
  • Zapewniono możliwość rejestrowania zdarzeń ACPI z systemu gościa poprzez interfejs ACPI ERST.
  • Poprawiono obsługę etykiet bezpieczeństwa w module virtiofs, który służy do przekazywania części systemu plików środowiska hosta do systemu gościa. Usunięto lukę CVE-2022-0358, pozwalającą na podniesienie uprawnień w systemie poprzez tworzenie plików wykonywalnych w katalogach przekazywanych przez virtiofs, należących do innej grupy i wyposażonych we flagę SGID.
  • Poprawiono elastyczność tworzenia kopii zapasowych obrazów aktywnego systemu w toku (tworzona jest migawka, po której stosowany jest filtr kopiowania przed zapisem (CBW) w celu aktualizacji stanu migawki, kopiowanie danych z obszarów, w których system-gość pisze). Dodano obsługę obrazów w formatach innych niż qcow2. Możliwość dostępu do migawki z kopią zapasową jest zapewniona nie bezpośrednio, ale za pośrednictwem sterownika urządzenia blokującego dostęp do migawki. Rozszerzone zostały możliwości sterowania pracą filtra CBW, np. niektóre mapy bitowe można wykluczyć z przetwarzania.
  • Emulator ARM dla maszyn „virt” dodał obsługę virtio-mem-pci, wykrywanie topologii procesora gościa i włączenie PAuth podczas korzystania z hiperwizora KVM z akceleratorem hvf. Dodano obsługę emulacji kontrolera PMC SLCR i OSPI Flash w emulatorze karty „xlnx-versal-virt”. Dodano nowe modele sterowania CRF i APU dla emulowanych maszyn „xlnx-zynqmp”. Dodano emulację rozszerzeń FEAT_LVA2, FEAT_LVA (duża wirtualna przestrzeń adresowa) i FEAT_LPA (duża przestrzeń adresowa fizyczna).
  • Klasyczny TCG (Tiny Code Generator) zrezygnował z obsługi hostów z procesorami ARMv4 i ARMv5, które nie obsługują niewyrównanego dostępu do pamięci i nie mają wystarczającej ilości pamięci RAM do uruchomienia QEMU.
  • Emulator architektury RISC-V dodaje obsługę hiperwizora KVM i implementuje rozszerzenia wektorowe Vector 1.0, a także instrukcje Zve64f, Zve32f, Zfhmin, Zfh, zfinx, zdinx i zhinx{min}. Dodano obsługę ładowania plików binarnych OpenSBI (RISC-V Supervisor Binary Interface) dla emulowanych maszyn typu „spike”. Dla emulowanych maszyn typu „virt” zaimplementowano możliwość wykorzystania do 32 rdzeni procesora oraz obsługę AIA.
  • Emulator architektury HPPA zapewnia do 16 vCPU i ulepszony sterownik graficzny dla środowisk użytkowników HP-UX VDE/CDE. Dodano możliwość zmiany kolejności rozruchu urządzeń SCSI.
  • Dodano obsługę do 4 rdzeni procesora, ładowanie zewnętrznego obrazu initrd i automatyczne generowanie drzewa urządzeń dla rozruchowego rdzenia w emulatorze architektury OpenRISC dla kart „sim”.
  • Emulator architektury PowerPC dla emulowanych maszyn „pseries” zaimplementował możliwość uruchamiania systemów gościnnych pod kontrolą zagnieżdżonego hiperwizora KVM. Dodano obsługę urządzenia spapr-nvdimm. Dodano obsługę kontrolera przerwań XIVE2 i kontrolerów PHB5 dla emulowanych maszyn „powernv”, ulepszono obsługę XIVE i PHB 3/4.
  • Do emulatora architektury s390x dodano obsługę rozszerzeń z15 (Miscellaneous-Instruction-Extensions Facility 3).

Źródło: opennet.ru

Dodaj komentarz