Opublikowano emulator QEMU 9.2.0 z obsługą Rust i Vulkan

Przedstawiono wydanie projektu QEMU 9.2. Jako emulator QEMU umożliwia uruchamianie programów zbudowanych dla jednej platformy sprzętowej na systemie o zupełnie innej architekturze, na przykład uruchomienie aplikacji dla ARM na komputerze kompatybilnym z x86. W trybie wirtualizacji QEMU wydajność wykonywania kodu w izolowanym środowisku jest bliska sprzętowej systemowi dzięki bezpośredniemu wykonywaniu instrukcji na CPU oraz wykorzystaniu hipernadzorcy Xen lub modułu KVM w Linuksie, lub modułu NVMM w NetBSD.

Projekt został pierwotnie stworzony przez Fabrice’a Bellarda w celu umożliwienia uruchamiania skompilowanych dla platformy x86 plików wykonywalnych Linuksa 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ń sprzętowych przekroczyła 400. Przygotowując wersję 9.2, wprowadzono ponad 1700 zmian od 209 programistów.

Kluczowe ulepszenia dodane w QEMU 9.2:

  • Dodano eksperymentalne wsparcie dla tworzenia modeli urządzeń napisanych w języku Rust. Podczas kompilacji QEMU z obsługą Rust, domyślnie używana jest alternatywna implementacja sterownika PL011 UART, napisana w Rust, która nie jest jeszcze zalecana do szerokiego użytku.

    Obecnie obsługa Rust w QEMU jest domyślnie wyłączona i aktywowana podczas kompilacji poprzez wskazanie opcji „—enable-rust” przy uruchamianiu skryptu configure. Do kompilacji z Rust wymagane są co najmniej wersje rustc 1.63.0 i bindgen 0.60.0 (na przykład w Debianie 12 można będzie potrzeba oddzielnie zainstalować nowszą wersję Rust). W przyszłości kompilator Rust i generator wiązań bindgen planują dodać do obowiązkowych zależności do budowy.

    W planach związanych z promocją Rust w QEMU można zauważyć doprowadzenie do stanu roboczego sterownika HPET (High Precision Event Timer) oraz sterownika dla urządzeń blokowych, napisanych w Rust, kontynuację rozwoju wiązań do użycia Rust w różnych komponentach QEMU (na przykład w sterownikach urządzeń blokowych, timerach i GPIO), przepisanie na Rust krytycznych z punktu widzenia bezpieczeństwa systemów, takich jak virtio.

  • W urządzeniu VirtIO-GPU, które zapewnia działanie wirtualnego GPU, dodano obsługę przyspieszenia 3D z wykorzystaniem API graficznego Vulkan, realizowaną przez wchodzący w skład Mesa sterownik Vulkan Venus, który umożliwia dostarczenie systemowi gościemu wirtualnego GPU do renderowania 3D bez otwierania ekskluzywnego dostępu do fizycznego GPU. Wymagana jest obecność biblioteki virglrenderer po stronie systemu hosta oraz sterownika Mesa Venus po stronie systemu gościa. Dostępna jest instrukcja konfigurowania obsługi Vulkan w QEMU.
  • Do narzędzia do migracji gości dodano obsługę przyspieszenia operacji kompresji jednocześnie przesyłanych strumieni danych za pomocą biblioteki QATzip, która wykorzystuje wbudowany w procesory Intel akcelerator QAT (QuickAssist Technology), oferujący środki do przyspieszania obliczeń związanych z kompresją i szyfrowaniem.
  • Do kryptograficznego backendu opartego na GLib dodano wsparcie dla algorytmu haszowania SHA-384.
  • W emulatorze architektury ARM dodano wsparcie dla rozszerzeń procesora FEAT_EBF16 i FEAT_CMOW, a także rozszerzeń związanych z bezpieczeństwem wykorzystywanych na płytach xilinx-zynq-a9. Korzystając z komponentu HVF, który wykorzystuje narzędzia Hypervisor.framework do przyspieszenia wykonania systemów gości na komputerach ARM Macs, zapewniono wsparcie dla pamięci większej niż 64 GB. Dodano także wsparcie dla dwustopniowego tłumaczenia adresów w SMMU (System Memory Management Unit) dla emulowanych systemów sbsa-ref i virt. Wsparcie dla przestarzałych typów emulowanego sprzętu akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex i z2 zostało zakończone.
  • W emulatorze architektury x86 dodano wsparcie dla nowego typu konfiguracji sprzętowej — nitro-enclave, emulującego środowisko AWS Nitro Enclave i zdolnego do ładowania obrazów systemowych w formacie Enclave Image Format.
  • W emulatorze architektury x86 dla hipernadzorcy KVM Wprowadzono możliwość włączenia obsługi zestawu instrukcji AVX10, a także specyficznych wersji AVX10 — avx10-128, avx10-256 i avx10-512.
  • W emulatorze architektury RISC-V dodano wsparcie dla rozszerzeń zestawu instrukcji Svvptc, Bitmanip (Bit-Manipulation) i CFI (Control Flow Integrity), wykorzystywanych na płytach OpenTitan. Do typu emulowanych systemów "virt" dodano obsługę IOMMU. Zwiększono wydajność instrukcji ld i st.
  • W emulatorze architektury HPPA oprogramowanie SeaBIOS-hppa zostało zaktualizowane do wersji 17.
  • W emulatorze architektury s390x dodano możliwość uruchamiania z innych urządzeń, jeśli nie udało się uruchomić z podanego urządzenia.

Ź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