Die Veröffentlichung des Projekts QEMU 6.1 wurde angekündigt. Als Emulator ermöglicht QEMU die Ausführung eines Programms, das für eine bestimmte Hardwareplattform entwickelt wurde, auf einem System mit einer vollkommen anderen Architektur, beispielsweise die Ausführung einer Anwendung für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU in einer isolierten Umgebung eine nahezu hardwareähnliche Leistung, indem es die CPU-Anweisungen direkt ausführt und den Hypervisor Xen oder das KVM-Modul verwendet.
Ursprünglich wurde das Projekt von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform kompilierten Linux-Binärdateien auf Architekturen zu ermöglichen, die von x86 abweichen. Im Laufe der Jahre wurde die vollständige Emulation von 14 Hardwarearchitekturen hinzugefügt, und die Zahl der emulierten Hardwaregeräte hat 400 überstiegen. Für die Version 6.1 wurden über 3000 Änderungen von 221 Entwicklern implementiert.
Wesentliche Verbesserungen, die in QEMU 6.1 hinzugefügt wurden:
- Im QMP (QEMU Machine Protocol) wurde der Befehl „blockdev-reopen“ hinzugefügt, um die Einstellungen eines bereits erstellten Blockgeräts zu ändern.
- Als bevorzugter Kryptotreiber kommt GnuTLS zum Einsatz, der andere Treiber in Bezug auf Leistung übertrifft. Der zuvor standardmäßig angebotene Treiber auf Basis von libgcrypt wurde in den Bereich der Optionen verschoben, während der auf Nettle basierende Treiber als Backup-Option verwendet wird, wenn GnuTLS und Libgcrypt nicht verfügbar sind.
- Der I2C-Emulator unterstützt jetzt PMBus und I2C-Multiplexer (pca9546, pca9548).
- Standardmäßig ist die Unterstützung von Plugins für den klassischen Codegenerator TCG (Tiny Code Generator) aktiviert. Neue Plugins wie execlog (Ausführungsprotokoll) und cache modelling (Simulation des Cache-Verhaltens von L1 in der CPU) wurden hinzugefügt.
- Im ARM-Emulator wurde die Unterstützung für Boards mit Aspeed-Chips (rainier-bmc, quanta-q7l1), npcm7xx (quanta-gbs-bmc) und Cortex-M3 (stm32vldiscovery) hinzugefügt. Unterstützung für Hardware-Verschlüsselungs- und Hash-Engines, die in Aspeed-Chips bereitgestellt werden, wurde hinzugefügt. Zudem erfolgt die Unterstützung der Emulation von SVE2-Instruktionen (einschließlich bfloat16), Matrizenmultiplikationsoperationen und Befehlen zum Zurücksetzen von Translation Lookaside Buffers (TLB).
- Im PowerPC-Architektur-Emulator für emulierte Maschinen vom Typ „pseries“ wurde die Unterstützung für die Erkennung von Fehlern beim Hot-Plugging von Geräten in neuen Gastumgebungen hinzugefügt, die CPU-Grenze erhöht und die Emulation bestimmter, spezifischer POWER10-Prozessoranweisungen realisiert. Zudem wurde die Unterstützung für Platinen auf Basis der Genesi/bPlan Pegasos II-Chips (pegasos2) implementiert.
- Im RISC-V-Emulator wurde die Unterstützung für die OpenTitan-Plattform und das virtuelle GPU virtio-vga (basierend auf virgl) realisiert.
- Im s390-Emulator wurde die Unterstützung für die 16. Generation von CPUs und Vektorerweiterungen hinzugefügt.
- Im x86-Emulator wurde die Unterstützung für neue Intel CPU-Modelle (Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton-v3, Snowridge-v3, Dhyana-v2) eingeführt, die die XSAVES-Anweisung implementieren. Im Q35-Chipsatz-Emulator (ICH9) wurde die Unterstützung für Hot-Plugging von PCI-Geräten realisiert. Die Emulation von Virtualisierungs-erweiterungen, die in AMD-Prozessoren bereitgestellt werden, wurde verbessert. Eine Option für die Bus-Sperrbegrenzung (bus-lock-ratelimit) wurde hinzugefügt, um die Intensität der Sperrung durch das Gastbetriebssystem zu limitieren.
- Die Verwendung von NVMM als Beschleuniger für den Hypervisor, entwickelt im Rahmen des NetBSD-Projekts, wurde implementiert.
- Im GUI wird die Passwortauthentifizierung bei Verwendung des VNC-Protokolls jetzt nur aktiviert, wenn mit einem externen kryptografischen Backend (gnutls, libgcrypt oder nettle) gebaut wurde.
Quelle: opennet.ru
