Dostępny emulator QEMU 9.1.0

Wydano wydanie projektu QEMU 9.1. Jako emulator QEMU pozwala uruchomić program skompilowany 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 bliska systemowi sprzętowemu dzięki bezpośredniemu wykonaniu instrukcji na CPU oraz zaangażowaniu hipernadzorcy Xen lub modułu KVM w systemie Linux, lub modułu NVMM w NetBSD.

Projekt został pierwotnie stworzony przez Fabrice'a Bellarda w celu umożliwienia uruchamiania plików wykonywalnych Linux skompilowanych dla platformy x86 na architekturach innych niż x86. W ciągu lat rozwoju dodano wsparcie dla pełnej emulacji dla 14 architektur sprzętowych, a liczba emulowanych urządzeń przekroczyła 400. Przy przygotowywaniu wersji 9.1 wprowadzono ponad 2800 zmian od 263 programistów.

Kluczowe ulepszenia wprowadzone w QEMU 9.1:

  • W narzędziach do migracji systemów gościnnych wprowadzono wsparcie dla przyspieszenia operacji kompresji danych, korzystając z technologii IAA (Intel In-Memory Analytics Accelerator) lub UADK (User Space Accelerator Development Kit). Ulepszono wsparcie dla przywracania po awariach migracji w trybie postcopy.
  • W mechanizmie virtio, używanym do organizacji interakcji między systemami gościnymi a systemem hosta, dodano wsparcie dla funkcji VIRTIO_F_NOTIFICATION_DATA, umożliwiającej sterownikom po stronie systemów gościnnych przesyłanie dodatkowych danych razem z wysyłanymi powiadomieniami. Funkcję tę można wykorzystać na przykład do wysyłania danych debugujących lub optymalizacji wydajności.
  • W agencie gościa dla systemów Linux dodano komendę guest-network-get-route, a dla systemów Windows dodano komendy guest-ssh-*. W interfejsie wiersza poleceń rozszerzono możliwości konfiguracji pracy poleceń „allowed” i „blocked”.
  • W emulatorze architektury ARM dodano wsparcie dla rozszerzeń procesora EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. Przy emulacji bloku kontrolującego pamięć SMMUv3 (System Memory Management Unit) zrealizowano wsparcie dla zagnieżdżonych i dwupoziomowych stron pamięci. Dla płyt Xilinx Zynq dodano wsparcie dla emulacji konfiguracji wieloprocesorowych, kontrolera wyświetlacza DM163 oraz kontrolera pamięci podręcznej.
  • Emulator architektury LoongArch umożliwia bezpośrednie ładowanie obrazów jądra w formacie ELF oraz dodano wsparcie dla uruchamiania do 256 CPU, korzystając z rozszerzenia extioi. Udoskonalone możliwości debugowania.
  • W emulatorze architektury RISC-V dodano wsparcie dla rozszerzeń procesora Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs i Smcntrpmf, a także wersji 1.13 specyfikacji architektury zestawu instrukcji uprzywilejowanych. Udoskonalone możliwości debugowania.
  • W emulatorze architektury SPARC dodano wsparcie dla rozszerzeń procesora FMAF, IMA, VIS3 i VIS4.
  • W emulatorze architektury x86 dla hipernadzorcy KVM zrealizowano możliwość uruchamiania systemów gościnnych z wykorzystaniem rozszerzenia procesora AMD SEV-SNP (Secure Nested Paging), zapewniającego bezpieczną pracę z zagnieżdżonymi tabelami stron pamięci. Wprowadzono wsparcie dla emulacji CPU bazującego na mikroarchitekturach Icelake-Server-v7, SapphireRapids-v3 i SierraForest.
  • Usunięto lukę (CVE-2024-7409) w serwerze urządzeniach blokowych NBD (Network Block Device), umożliwiającą przez manipulacje w systemie gościnnym doprowadzić do awaryjnego zakończenia QEMU podczas wykonywania operacji nbd-server-stop, nawet jeśli klient nie ma kluczy TLS do połączenia z serwerem NBD.

Ź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