Wydanie emulatora QEMU 11.0.0

Przedstawiamy wydanie projektu QEMU 11.0.0. Jako emulator QEMU pozwala uruchomić program stworzony dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, na przykład uruchomić aplikację dla ARM na komputerze zgodnym z x86. W trybie wirtualizacji w QEMU wydajność wykonywania kodu w izolowanym środowisku jest zbliżona do systemu sprzętowego dzięki bezpośredniemu wykonywaniu instrukcji na CPU oraz wykorzystaniu hypervisora Xen lub modułu KVM w Linux, lub modułu NVMM w NetBSD.

Początkowo projekt został stworzony przez Fabrice'a Bellarda w celu umożliwienia uruchamiania skompilowanych dla platformy x86 plików wykonywalnych Linux na architekturach różnych od x86. W ciągu lat rozwoju dodano wsparcie dla pełnej emulacji 14 architektur sprzętowych, a liczba emulowanych urządzeń przekroczyła 400. W przygotowaniu wersji 11.0.0 wprowadzono ponad 2500 zmian od 237 programistów.

Kluczowe ulepszenia dodane w QEMU 11.0:

  • Usunięto wsparcie dla 32-bitowych systemów host, które zostało ogłoszone jako przestarzałe w kwietniu zeszłego roku w QEMU 10.0. W grudniowym wydaniu 10.2 w generatorze kodu TCG (Tiny Code Generator) zakończono wsparcie dla platform mips32 i ppc32, a w wydaniu QEMU 11.0 usunięto pozostałe platformy i386, arm, ppc i riscv32, a także przeprowadzono czyszczenie bazy kodu i systemu budowania z komponentów do pracy na 32-bitowych hostach.
  • Wdrażany jest akcelerator wirtualizacji „nitro” („-accel nitor”) oraz nowy typ emulowanych systemów „nitro”, pozwalający uruchamiać w QEMU izolowane enklawy oparte na technologii poufnych obliczeń AWS Nitro Enclave, na przykład do lokalnego testowania w QEMU środowisk Nitro Enclave. W AWS EC2 technologia Nitro Enclave umożliwia uruchamianie w maszynie wirtualnej zagnieżdżonych izolowanych enklaw do pracy z poufnymi danymi, przydzielając im część swoich zasobów.
  • Poprawiono wsparcie dla akceleratorów wirtualizacji MSHV (Microsoft Hypervisor) oraz WHPX (Microsoft Windows Hypervisor Platform Extensions).
  • Przy użyciu hypervisora KVM („-accel kvm”) dodano wsparcie dla wirtualizacji rozszerzenia Intel CET (Control-flow Enforcement Technology) do zastosowania w maszynach wirtualnych ochronie przed exploitami wykorzystującymi metody programowania opartego na powrotach (ROP — Return-Oriented Programming). Dodano również wsparcie dla ponownego uruchamiania poufnych. maszyn wirtualnych, wykorzystujących rozszerzenia AMD SEV-SNP (Secure Encrypted Virtualization — Secure Nested Paging) oraz Intel TDX (Trust Domain Extensions).
  • W urządzeniu VirtIO-GPU, zapewniającym działanie wirtualnego GPU, dodano możliwość ustawienia różnych rozdzielczości ekranu dla różnych urządzeń wyjściowych.
  • W VirtIO-GPU dodano wsparcie dla kontekstów DRM (native context zarządzania bezpośrednim renderowaniem), co pozwala zwiększyć wydajność pracy z wirtualnym GPU z systemu gościa dzięki bezpośredniemu przesyłaniu poleceń do rzeczywistego GPU hosta. Wsparcie dla kontekstów DRM włącza się przy użyciu nowego urządzenia virtio-gpu-gl z opcją „drm_native_context=on”. W odróżnieniu od kontekstów Virgl i Venus, które działają na poziomie API OpenGL i Vulkan, kontekst DRM jest realizowany na poziomie UAPI jądra Linux.
  • Dodano możliwość używania języka C++ do tworzenia wtyczek dla generatora kodu TCG (Tiny Code Generator).
  • W blokowym sterowniku NFS dodano wsparcie dla budowy z biblioteką libnfs 6.
  • W blokowym sterowniku curl dodano opcję „force-range”, wymuszającą używanie nagłówka HTTP „Range” podczas pobierania obrazów bez wcześniejszego sprawdzania jego wsparcia za pomocą osobnego żądania z nagłówkiem HEAD.
  • W blokowym sterowniku FUSE wyłączono przetwarzanie operacji eksportu w trybie synchronicznym, co prowadziło do zablokowania uruchomienia maszyny wirtualnej do zakończenia przetwarzania innych żądań FUSE. Dodano możliwość używania wielu wątków wejścia/wyjścia (iothread) podczas wykonywania eksportu do FUSE.
  • W emulatorze architektury x86 dodano wsparcie dla CPU Intel Diamond Rapids („Xeon 7”).
  • W emulatorze architektury ARM dodano rozszerzenia procesora FEAT_ASID2 oraz FEAT_E2H0. W generatorze kodu TCG zaimplementowano emulację rozszerzeń SME (Scalable Matrix Extension).
  • W emulatorze architektury HPPA dodano wsparcie dla emulacji 64-bitowych CPU z 40- i 44-bitową przestrzenią adresową. Dzięki SeaBIOS-hppa 24 zapewniono inicjalizację kontrolera PCI Astro, co pozwala na używanie kart graficznych PCI w systemach 64-bitowych.
  • W emulatorze architektury LoongArch dodano możliwość migracji PMU (Performance Monitoring Unit) przy użyciu hipernadzorcy KVM. W generatorze kodu TCG zaimplementowano emulację rozszerzeń LA v1.1, sc.q oraz llacq/screl, a także instrukcji FRECIP i DRECIP do obliczania wartości odwrotnych.
  • W emulatorze architektury PowerPC dodano wsparcie dla migawków.
  • W emulatorze architektury RISC-V zrealizowano obsługę CPU MIPS P8700 oraz rozszerzeń zestawu instrukcji Zilsd, Zclsd, ZALASR i Smpmpmt.
  • W emulatorze architektury s390 dodano obsługę uruchamiania z urządzeń virtio-blk-pci oraz zrealizowano emulację instrukcji „DIVIDE TO INTEGER”.
  • Przyjęto poprawkę, która w 50-80 razy skraca opóźnienia podczas działania fdmon (monitorowanie deskryptora pliku) w trybie „aio=io_uring” oraz w stanie bezczynności systemu.

    Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster