Wydanie emulatora QEMU 6.2

Przedstawiono wydanie projektu QEMU 6.2. 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 6.2 dokonano ponad 2300 zmian od 189 programistów.

Kluczowe ulepszenia dodane w QEMU 6.2:

  • Dodano mechanizm virtio-mem pozwalający na hot-plug i odłączanie pamięci do maszyn wirtualnych, pełną obsługę zrzutów pamięci gości, operacji kopiowania przed i po migracji środowiska (pre-copy/post-copy) oraz tworzenia systemu gościa migawki w tle.
  • QMP (QEMU Machine Protocol) implementuje obsługę błędów DEVICE_UNPLUG_GUEST_ERROR występujących po stronie gościa w przypadku awarii podczas operacji podłączania sprzętu podczas pracy.
  • Rozszerzono składnię ładowania argumentów przetwarzanych w wtyczkach dla klasycznego generatora kodu TCG (Tiny Code Generator). Do wtyczki „cache” dodano obsługę systemów wielordzeniowych.
  • Emulator x86 obsługuje model procesora Intel Snowridge-v4. Dodano obsługę dostępu do enklaw Intel SGX (Software Guard eXtensions) z systemów gościnnych przy użyciu urządzenia /dev/sgx_vepc po stronie hosta i zaplecza „memory-backend-epc” w QEMU. Dla systemów gościnnych chronionych technologią AMD SEV (Secure Encrypted Virtualization) dodano możliwość weryfikowalnego bezpośredniego (bez użycia bootloadera) uruchomienia jądra (włączane poprzez ustawienie parametru „kernel-hashes=on” na „sev-guest”) .
  • Emulator ARM w systemach hosta z chipem Apple Silicon implementuje obsługę mechanizmu przyspieszania sprzętowego „hvf” podczas uruchamiania gości w oparciu o architekturę AArch64. Dodano obsługę emulacji modelu procesora Fujitsu A64FX. Zaimplementowano nowy typ emulowanych maszyn „kudo-mbc”. Dodano obsługę emulacji ITS (Interrupt Translation Service) dla maszyn „virt” oraz możliwość użycia ponad 123 procesorów w trybie emulacji. Dodano obsługę urządzeń BBRAM i eFUSE dla emulowanych maszyn „xlnx-zcu102” i „xlnx-versal-virt”. Dla układów opartych na chipie Cortex-M55 zapewniona jest obsługa mobilnego profilu rozszerzeń procesorów MVE.
  • Do emulatora architektury PowerPC dodano wstępną obsługę modelu procesora POWER10 DD2.0. Udoskonalono obsługę architektury POWER10 dla maszyn emulowanych „powernv” i dodano opisy FORM2 PAPR NUMA dla maszyn „pseries”.
  • Dodano obsługę rozszerzeń zestawu instrukcji Zb[abcs] do emulatora architektury RISC-V. Wszystkie emulowane maszyny mogą używać opcji „host-user” i „numa mem”. Dodano obsługę SiFive PWM (modulator szerokości impulsu).
  • Emulator 68k poprawia obsługę proponowanego przez Apple NuBus, w tym możliwość ładowania obrazów ROM i obsługę szczelin przerwań.
  • Urządzenie blokowe qemu-nbd ma domyślnie włączone buforowanie zapisu („zapis zwrotny” zamiast „zapis”), aby dopasować zachowanie qemu-img. Dodano opcję „--selinux-label” do oznaczania gniazd SELinux Unix.

Źródło: opennet.ru

Dodaj komentarz