Der Emulator QEMU 9.2.0 wurde veröffentlicht und unterstĂŒtzt Rust und Vulkan.

Die Veröffentlichung des Projekts QEMU 9.2 wurde vorgestellt. Als Emulator ermöglicht QEMU das AusfĂŒhren von Programmen, die fĂŒr eine Hardwareplattform kompiliert wurden, auf einem System mit einer ganz anderen Architektur, beispielsweise das AusfĂŒhren einer Anwendung fĂŒr ARM auf einem mit x86 kompatiblen PC. Im Virtualisierungsmodus ist die Performance der AusfĂŒhrung von Code in einer isolierten Umgebung nahezu vergleichbar mit der einer Hardwarelösung, da Instruktionen direkt auf der CPU ausgefĂŒhrt und der Hypervisor Xen oder das KVM-Modul in Linux oder das NVMM-Modul in NetBSD genutzt werden.

Das Projekt wurde ursprĂŒnglich von Fabrice Bellard ins Leben gerufen, um die AusfĂŒhrung von fĂŒr x86-kompilierte Linux-BinĂ€rdateien auf anderen Architekturen als x86 zu ermöglichen. Im Laufe der Jahre wurde die UnterstĂŒtzung fĂŒr die vollstĂ€ndige Emulation von 14 Hardwarearchitekturen hinzugefĂŒgt, und die Anzahl der emulierten HardwaregerĂ€te ĂŒberstieg 400. Bei der Vorbereitung der Version 9.2 wurden ĂŒber 1700 Änderungen von 209 Entwicklern implementiert.

Wichtige Verbesserungen, die in QEMU 9.2 hinzugefĂŒgt wurden:

  • Es wurde experimentelle UnterstĂŒtzung fĂŒr die Erstellung von GerĂ€temodellen in der Programmiersprache Rust hinzugefĂŒgt. Wenn QEMU mit UnterstĂŒtzung fĂŒr Rust kompiliert wird, wird standardmĂ€ĂŸig eine alternative Implementierung des PL011 UART-Treibers, die in Rust geschrieben wurde, verwendet, die jedoch bisher nicht fĂŒr den allgemeinen Gebrauch empfohlen wird.

    Derzeit ist die UnterstĂŒtzung von Rust in QEMU standardmĂ€ĂŸig deaktiviert und wird bei der Erstellung aktiviert, indem die Option „—enable-rust“ beim Start des Konfigurationsskripts angegeben wird. FĂŒr die Erstellung mit Rust sind mindestens die Versionen rustc 1.63.0 und bindgen 0.60.0 erforderlich (zum Beispiel muss in Debian 12 eine neuere Version von Rust separat installiert werden). In Zukunft planen die Compiler fĂŒr Rust und der Bindungsgenerator bindgen, zu den obligatorischen Build-AbhĂ€ngigkeiten hinzugefĂŒgt zu werden.

    Zu den PlĂ€nen, die Rust in QEMU vorantreiben sollen, gehört die Fertigstellung des HPET (High Precision Event Timer)-Treibers und des Treibers fĂŒr BlockgerĂ€te, die in Rust geschrieben sind, sowie die Weiterentwicklung der Bindings zur Nutzung von Rust in verschiedenen QEMU-Komponenten (z.B. in BlockgerĂ€tetreibern, Timern und GPIO) und das Neuschreiben sicherheitskritischer Systeme wie virtio in Rust.

  • Im VirtIO-GPU-GerĂ€t, das den Betrieb des virtuellen GPUs ermöglicht, wurde die UnterstĂŒtzung fĂŒr 3D-Beschleunigung unter Verwendung der Grafik-API Vulkan hinzugefĂŒgt, die ĂŒber den in Mesa integrierten Vulkan-Treiber Venus realisiert wird und es ermöglicht, dem Gastsystem ein virtuelles GPU fĂŒr 3D-Rendering bereitzustellen, ohne exklusiven direkten Zugriff auf das physische GPU zu eröffnen. Es ist erforderlich, dass die Bibliothek virglrenderer auf der Host-Seite und der Mesa-Treiber Venus auf der Gast-Seite vorhanden sind. Eine Anleitung zur Einrichtung der Vulkan-UnterstĂŒtzung in QEMU ist verfĂŒgbar.
  • In das Migrationswerkzeug fĂŒr GĂ€ste wurde die UnterstĂŒtzung fĂŒr die Beschleunigung von Komprimierungsoperationen gleichzeitig ĂŒbertragener Datenströme hinzugefĂŒgt, unter Verwendung der QATzip-Bibliothek, die den in Intel-Prozessoren integrierten QAT-Beschleuniger (QuickAssist Technology) nutzt, der Mittel zur Beschleunigung berechneter VorgĂ€nge im Zusammenhang mit Komprimierung und VerschlĂŒsselung bietet.
  • Im kryptografischen Backend basierend auf GLib wurde die UnterstĂŒtzung des Hash-Algorithmus SHA-384 hinzugefĂŒgt.
  • Im ARM-Architekture-Emulator wurde die UnterstĂŒtzung der Prozessorerweiterungen FEAT_EBF16 und FEAT_CMOW sowie der fĂŒr Sicherheitsfunktionen verwendeten Erweiterungen auf Xilinx-Zynq-A9-Boards hinzugefĂŒgt. Bei Verwendung der Komponente HVF, die das Hypervisor.framework-Toolkit zur Beschleunigung der AusfĂŒhrung von Gastbetriebssystemen auf ARM-Mac-Computern nutzt, wird die UnterstĂŒtzung von mehr als 64 GB Speicher gewĂ€hrleistet. FĂŒr die emulierten Systeme sbsa-ref und virt wurde die UnterstĂŒtzung der zweistufigen AdressĂŒbersetzung im SMMU (System Memory Management Unit) hinzugefĂŒgt. Die UnterstĂŒtzung fĂŒr veraltete Typen von emulierten GerĂ€ten wie akita, borzoi, cheetah, connex, mainstone, n800, n810, spitz, terrier, tosa, verdex und z2 wurde eingestellt.
  • Im x86-Emulator wurde die UnterstĂŒtzung fĂŒr eine neue Art von Hardwarekonfiguration hinzugefĂŒgt — nitro-enclave, die die AWS Nitro Enclave-Umgebung emuliert und in der Lage ist, Systemabbilder im Enclave Image Format zu laden.
  • Im x86-Architekture-Emulator fĂŒr den Hypervisor wurde die Möglichkeit implementiert, die UnterstĂŒtzung fĂŒr den Befehlssatz AVX10 sowie spezifische Versionen von AVX10 — avx10-128, avx10-256 und avx10-512 — zu aktivieren. KVM Es wurde die Möglichkeit implementiert, die UnterstĂŒtzung fĂŒr den AVX10-Befehlssatz sowie spezifische Versionen von AVX10 — avx10-128, avx10-256 und avx10-512 zu aktivieren.
  • Im RISC-V-Emulator wurde die UnterstĂŒtzung fĂŒr die Erweiterungen des Befehlssatzes Svvptc, Bitmanip (Bitmanipulation) und CFI (Control Flow Integrity), die auf OpenTitan-Platinen verwendet werden, hinzugefĂŒgt. In den emulierten Systemtyp „virt“ wurde die UnterstĂŒtzung fĂŒr IOMMU integriert. Die Leistung der Befehle ld und st wurde erhöht.
  • Im HPPA-Architektur-Emulator wurde die SeaBIOS-hppa-Firmware auf Version 17 aktualisiert.
  • Im Emulator der Architektur s390x wurde die Möglichkeit hinzugefĂŒgt, von anderen GerĂ€ten zu starten, falls das Starten vom angegebenen GerĂ€t nicht möglich war.

Quelle: opennet.ru

60GB SSD 8Gb DDR4