Wydanie emulatora QEMU 8.0

Przedstawiono wydanie projektu QEMU 8.0. Jako emulator QEMU pozwala na uruchomienie programu zbudowanego dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, np. uruchomienie aplikacji ARM na komputerze zgodnym z x86. W trybie wirtualizacji w QEMU wydajność wykonywania kodu w odizolowanym środowisku jest zbliżona do systemu sprzętowego ze względu na bezpośrednie wykonywanie instrukcji na CPU oraz wykorzystanie 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 8.0 dokonano ponad 2800 zmian od 238 programistów.

Kluczowe ulepszenia dodane w QEMU 8.0:

  • Uznane za przestarzałe i obsługa emulacji systemu (uruchamianie całego systemu operacyjnego, w tym hiperwizorów KVM i Xen) na 32-bitowych hostach x86 wkrótce zostanie wycofana. Obsługa emulacji trybu użytkownika (uruchamianie oddzielnych procesów zbudowanych dla różnych procesorów) na 32-bitowych hostach x86 będzie kontynuowana.
  • Dodano obsługę uruchamiania gości Xen w środowisku opartym na hiperwizorze KVM i jądrze Linux 86+ w emulatorze architektury x5.12.
  • Dodano obsługę flag CPUID FSRM, FZRM, FSRS i FSRC w klasycznym generatorze kodu TCG dla architektury x86. Wdrożono obsługę nowego modelu procesora Intel Sapphire Rapids (Intel 7).
  • W emulatorze ARM zaimplementowano obsługę procesorów Cortex-A55 i Cortex-R52, dodano nowy typ emulowanej maszyny Olimex STM32 H405, dodano obsługę procesora FEAT_EVT (Enhanced Virtualization Traps), FEAT_FGT (Fine-Grained Traps) oraz procesor AArch32 ARMv8-R rozszerzenia. Dodano obsługę rejestrów systemowych w gdbstub dla architektury M-profile (profil mikrokontrolera).
  • Implementacja emulowanych maszyn OpenTitan, PolarFire i OpenSBI została zaktualizowana w emulatorze architektury RISC-V. Dodano obsługę dodatkowych zestawów instrukcji procesora (ISA) i rozszerzeń: Smstateen, liczniki debugowania icount, zdarzenia związane z pamięcią podręczną PMU w trybie wirtualnym, rozszerzenia ACPI, Zawrs, Svadu, T-Head i Zicond.
  • Do emulatora architektury HPPA dodano obsługę instrukcji fid (zmiennoprzecinkowej identyfikacji), a emulacja została ulepszona w trybie 32-bitowym.
  • Emulator architektury 390x obsługuje asynchroniczne odłączanie pamięci podczas ponownego uruchamiania bezpiecznych gości KVM. Ulepszona obsługa przekazywanych urządzeń zPCI.
  • Mechanizm virtio-mem, który umożliwia podłączanie i odłączanie pamięci do maszyn wirtualnych podczas pracy, implementuje wstępną alokację podczas migracji na żywo.
  • Eksperymentalna obsługa migracji została zaktualizowana w VFIO (Virtual Function I/O) (dotyczy to drugiej edycji protokołu migracji).
  • Urządzenie blokowe qemu-nbd poprawiło wydajność w stosunku do protokołu TCP podczas korzystania z protokołu TLS.
  • Do agenta gościa dodano wstępną obsługę OpenBSD i NetBSD.

Źródło: opennet.ru

Dodaj komentarz