Wydanie emulatora QEMU 6.1

Przedstawiono wydanie projektu QEMU 6.1. 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 zapewnić możliwość uruchamiania plików wykonywalnych systemu Linux skompilowanych dla platformy x86 na architekturach innych niż x86. Na przestrzeni lat rozwoju dodano obsługę pełnej emulacji dla 14 architektur sprzętowych, liczba emulowanych urządzeń sprzętowych przekroczyła 400. Przygotowując wersję 6.1, wprowadzono ponad 3000 zmian od 221 programistów.

Kluczowe ulepszenia dodane w QEMU 6.1:

  • Do QMP (QEMU Machine Protocol) dodano polecenie „blockdev-reopen” umożliwiające zmianę ustawień już utworzonego urządzenia blokowego.
  • Gnutls jest używany jako priorytetowy sterownik kryptograficzny, który wyprzedza inne sterowniki pod względem wydajności. Sterownik oparty na libgcrypt, który był wcześniej oferowany domyślnie, został przeniesiony do szeregu opcji, a sterownik oparty na pokrzywie pozostawiono jako opcję awaryjną, używaną w przypadku braku GnuTLS i Libgcrypt.
  • Dodano obsługę multiplekserów PMBus i I2C (pca2, pca9546) do emulatora I9548C.
  • Domyślnie włączona jest obsługa wtyczek do klasycznego generatora kodu TCG (Tiny Code Generator). Dodano nowe wtyczki execlog (dziennik wykonania) i modelowanie pamięci podręcznej (symulacja zachowania pamięci podręcznej L1 w procesorze).
  • W emulatorze ARM dodano obsługę płyt opartych na układach Aspeed (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) i Cortex-M3 (stm32vldiscovery). Dodano obsługę szyfrowania sprzętowego i silników mieszających dostępnych w układach Aspeed. Dodano obsługę emulacji instrukcji SVE2 (w tym bfloat16), operatorów mnożenia macierzy i instrukcji opróżniania bufora skojarzonego z translacją (TLB).
  • W emulatorze architektury PowerPC dla emulowanych maszyn z serii ps dodano obsługę wykrywania awarii podczas podłączania urządzeń podczas pracy w nowych środowiskach gościnnych, zwiększono limit liczby procesorów oraz zaimplementowano emulację niektórych instrukcji specyficznych dla procesorów POWER10 . Dodano obsługę płyt opartych na chipach Genesi/bPlan Pegasos II (pegasos2).
  • Emulator RISC-V obsługuje platformę OpenTitan i wirtualny procesor graficzny virtio-vga (oparty na virgl).
  • Emulator s390 dodał obsługę procesorów 16. generacji i rozszerzeń wektorowych.
  • Do emulatora x86 dodano obsługę nowych modeli procesorów Intel (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton- v3, Snowridge-v3, Dhyana-v2), które implementują instrukcję XSAVES. Emulator chipsetu Q35 (ICH9) obsługuje podłączanie urządzeń PCI podczas pracy. Ulepszona emulacja rozszerzeń wirtualizacji dostępnych w procesorach AMD. Dodano opcję bus-lock-ratelimit ograniczającą intensywność blokowania magistrali przez system gościa.
  • Dodano obsługę wykorzystania jako akceleratora dla hiperwizora NVMM opracowanego w ramach projektu NetBSD.
  • W GUI obsługa uwierzytelniania hasłem podczas korzystania z protokołu VNC jest teraz włączona tylko podczas budowania z zewnętrznym zapleczem kryptograficznym (gnutls, libgcrypt lub nettle).

Źródło: opennet.ru

Dodaj komentarz