Erscheinung des QEMU Emulators 11.0.0

Die Veröffentlichung des Projekts QEMU 11.0.0 wurde vorgestellt. Als Emulator ermöglicht QEMU die Ausführung von Programmen, die für eine bestimmte Hardware-Plattform kompiliert wurden, auf einem System mit einer völlig anderen Architektur, beispielsweise die Ausführung einer ARM-Anwendung auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU eine Codeausführungsleistung in einer isolierten Umgebung, die der der physischen Systeme nahekommt, indem es direkte Ausführung von Anweisungen auf der CPU nutzt und den Hypervisor Xen oder das KVM-Modul in Linux oder das NVMM-Modul in NetBSD einsetzt.

Das Projekt wurde ursprünglich von Fabrice Bellard gegründet, um die Ausführung von für x86-Plattformen kompilierten Linux-Executables auf anderen Architekturen zu ermöglichen. Im Laufe der Jahre wurde die Unterstützung für volle Emulation von 14 Hardwarearchitekturen hinzugefügt, und die Anzahl der emulierten Hardwaregeräte überstieg 400. Für die Version 11.0.0 wurden mehr als 2500 Änderungen von 237 Entwicklern vorgenommen.

Wesentliche Verbesserungen, die in QEMU 11.0 hinzugefügt wurden:

  • Die Unterstützung für 32-Bit-Host-Systeme wurde entfernt, nachdem sie im April letzten Jahres in QEMU 10.0 als veraltet erklärt wurde. In der Dezemberausgabe 10.2 wurde die Unterstützung für die Plattformen mips32 und ppc32 im TCG-Codegenerator (Tiny Code Generator) eingestellt, und in der Version QEMU 11.0 wurden die verbleibenden Plattformen i386, arm, ppc und riscv32 entfernt. Außerdem wurde der Code und das Build-System von Komponenten für 32-Bit-Hosts bereinigt.
  • Ein Beschleuniger für die Virtualisierung namens "nitro" ("-accel nitro") sowie ein neuer Typ emulierter Systeme "nitro" wurden eingeführt, die es ermöglichen, isolierte Enklaven basierend auf der AWS Nitro Enclave Confidential Computing-Technologie in QEMU auszuführen, beispielsweise für lokale Tests von Nitro Enclave-Umgebungen in QEMU. In AWS EC2 ermöglicht die Nitro Enclave-Technologie die Ausführung von geschachtelten, isolierten Enklaven in einer virtuellen Maschine zur Verarbeitung von vertraulichen Daten, indem ein Teil der Ressourcen dafür bereitgestellt wird.
  • Die Unterstützung für die Virtualisierungsbeschleuniger MSHV (Microsoft Hypervisor) und WHPX (Microsoft Windows Hypervisor Platform Extensions) wurde verbessert.
  • Bei der Verwendung des KVM-Hypervisors ("-accel kvm") wurde die Unterstützung für die Virtualisierung der Intel CET (Control-flow Enforcement Technology) für die Anwendung in virtuellen Maschinen Schutz gegen Exploits, die Techniken des Return-Oriented Programming (ROP) verwenden, hinzugefügt. Außerdem wurde die Unterstützung für das Neustarten von vertraulichen virtuelle Maschinen, die zur Verschlüsselung des Speichers die Erweiterungen AMD SEV-SNP (Secure Encrypted Virtualization — Secure Nested Paging) und Intel TDX (Trust Domain Extensions) verwenden.
  • Im VirtIO-GPU-Gerät, das die Funktionalität eines virtuellen GPUs bereitstellt, wurde die Möglichkeit hinzugefügt, unterschiedliche Bildschirmauflösungen für verschiedene Ausgabegeräte einzustellen.
  • Im VirtIO-GPU wurde die Unterstützung von DRM-Kontexten (Direct Rendering Manager native context) hinzugefügt, die die Leistung des virtuellen GPUs aus dem Gastbetriebssystem durch direkte Befehlsübertragung an das tatsächliche Host-GPU steigern. Die Unterstützung für DRM-Kontexte wird aktiviert, wenn das neue Gerät virtio-gpu-gl mit der Option „drm_native_context=on“ verwendet wird. Im Gegensatz zu den Virgl- und Venus-Kontexten, die auf der API-Ebene von OpenGL und Vulkan arbeiten, ist der DRM-Kontext auf der UAPI-Ebene des Linux-Kernels implementiert.
  • Die Möglichkeit zur Verwendung der Programmiersprache C++ für die Entwicklung von Plugins für den TCG (Tiny Code Generator) wurde hinzugefügt.
  • Im Blocktreiber NFS wurde die Unterstützung für den Build mit der Bibliothek libnfs 6 hinzugefügt.
  • Im Blocktreiber curl wurde die Option „force-range“ hinzugefügt, um die Verwendung des HTTP-Headers „Range“ beim Herunterladen von Bildern ohne vorherige Überprüfung seiner Unterstützung durch eine separate HEAD-Anfrage zu erzwingen.
  • Im Blocktreiber FUSE wurde die Verarbeitung von Exportoperationen im synchronen Modus deaktiviert, die dazu führten, dass der Start der virtuellen Maschine bis zum Abschluss der Bearbeitung anderer FUSE-Anfragen blockiert wurde. Die Möglichkeit zur Verwendung mehrerer Eingabe-/Ausgabeströme (iothread) beim Export in FUSE wurde hinzugefügt.
  • Im x86-Architektur-Emulator wurde die Unterstützung für die CPU Intel Diamond Rapids („Xeon 7“) hinzugefügt.
  • Im ARM-Architektur-Emulator wurden die Prozessorerweiterungen FEAT_ASID2 und FEAT_E2H0 hinzugefügt. Im TCG-Generator wurde die Emulation der Erweiterungen SME (Scalable Matrix Extension) implementiert.
  • Im HPPA-Architektur-Emulator wurde die Unterstützung für die Emulation von 64-Bit-CPUs mit 40- und 44-Bit-Adresse bereichen hinzugefügt. Mit SeaBIOS-hppa 24 wurde die Initialisierung des PCI-Controllers Astro ermöglicht, die die Verwendung von PCI-Grafikkarten in 64-Bit-Systemen erlaubt.
  • Im LoongArch-Architektur-Emulator wurde die Möglichkeit zur Migration der PMU (Performance Monitoring Unit) bei Verwendung des Hypervisors KVM hinzugefügt. Im TCG-Generator wurde die Emulation der Erweiterungen LA v1.1, sc.q und llacq/screl sowie der Befehle FRECIP und DRECIP zur Berechnung der Kehrwerte implementiert.
  • Im PowerPC-Architektur-Emulator wurde die Unterstützung für Snapshots hinzugefügt.
  • Im RISC-V-Architektur-Emulator wurde die Unterstützung für die CPU MIPS P8700 und die Befehlsatz-Erweiterungen Zilsd, Zclsd, ZALASR und Smpmpmt implementiert.
  • Im s390-Architektur-Emulator wurde die Unterstützung für das Booten von virtio-blk-pci-Geräten hinzugefügt, und die Emulation des Befehls 'DIVIDE TO INTEGER' wurde umgesetzt.
  • Eine Korrektur wurde angenommen, die die Verzögerungen bei der Nutzung von fdmon (File Descriptor Monitoring) im 'aio=io_uring'-Modus und während der System-Inaktivitätszustände (idle) um das 50- bis 80-Fache reduziert.

    Quelle: opennet.ru
60GB SSD 8Gb DDR4