Wydanie emulatora QEMU 7.2

Przedstawiono wydanie projektu QEMU 7.2. 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 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 7.2 wprowadzono ponad 1800 zmian przez 205 programistów.

Kluczowe ulepszenia dodane w QEMU 7.2:

  • Emulator architektury x86 w klasycznym generatorze kodu TCG dodał obsługę instrukcji AVX, AVX2, F16C, FMA3 i VAES, a także optymalizacje wydajności związane z wykorzystaniem instrukcji SSE. KVM Dodano obsługę mechanizmu monitorowania wyjść maszyn wirtualnych („notify vmexit”), który umożliwia pominięcie błędów procesora, które mogą prowadzić do zawieszenia.
  • Emulator ARM obsługuje procesor Cortex-A35 i rozszerzenia procesora ETS (Enhanced Translation Synchronization), PMUv3p5 (PMU Extensions 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (sprzętowa kontrola flagi dostępu i stanu „brudnego”) i E0PD (zapobieganie dostępowi EL0 do podzielonych map adresów).
  • Emulator LoongArch dodaje obsługę fw_cfg DMA, pamięci typu hot-plug i emulacji urządzenia TPM (Trusted Platform Module).
  • Emulator architektury OpenRISC implementuje platformę „virt” do testowania urządzeń i wykorzystania ich w systemach ciągłej integracji. Zaimplementowano obsługę wielowątkowej realizacji klasycznego generatora kodu TCG (Tiny Code Generator).
  • Emulator architektury RISC-V w maszynach emulowanych typu „virt” ma możliwość ładowania oprogramowania sprzętowego z pflash w trybie S-mode. Poprawiona praca z drzewem urządzeń.
  • Emulator 390x zapewnia obsługę MSA5 (Message-Security-Assist Extension 5 z instrukcją PRNO do generowania liczb pseudolosowych), instrukcji KIMD/KLM (implementacja SHA-512) oraz rozszerzoną interpretację zPCI dla systemów gościnnych w oparciu o hiperwizor KVM .
  • Backendy do pracy z pamięcią zapewniają wstępną alokację pamięci z uwzględnieniem architektury NUMA.
  • Ulepszona weryfikacja nagłówków urządzeń blokowych szyfrowanych LUKS, dodano możliwość tworzenia obrazów LUKS w macOS.
  • Backend 9pfs, który umożliwia wykorzystanie sieciowego systemu plików Plan 9 w celu uzyskania dostępu z jednej maszyny wirtualnej do drugiej, przeszedł na używanie skrótu GHashTable w tabeli identyfikatorów, co w niektórych sytuacjach doprowadziło do 6-12-krotnego wzrostu wydajności.
  • Dodano nowy strumień i dgram zaplecza Netdev.
  • Do agenta dodano obsługę FreeBSD dla gości opartych na architekturze ARM.
  • W zestawach GUI dla macOS Dodano możliwość uwzględnienia interfejsów opartych na Cocoa i SDL/GTK w jednym pliku wykonywalnym.
  • Wbudowany podmoduł „slirp” został usunięty, zamiast tego zaleca się korzystanie z biblioteki systemowej libslirp.
  • Ze względu na brak możliwości testowania obsługa systemów hostów z 32-bitowymi procesorami MIPS korzystającymi z kolejności bajtów Big Endian została wycofana.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster