Veröffentlichung des Emulators QEMU 8.2

Die Veröffentlichung des Projekts QEMU 8.2 wurde präsentiert. Als Emulator ermöglicht QEMU das Ausführen von Programmen, die für eine bestimmte Hardwareplattform erstellt wurden, auf einem System mit einer völlig anderen Architektur, beispielsweise eine Anwendung für ARM auf einem x86-kompatiblen PC auszuführen. Im Virtualisierungsmodus ist die Ausführung von Code in einer isolierten Umgebung nahe an der Leistung des Hardware-Systems, dank der direkten Ausführung von Anweisungen auf der CPU und der Nutzung des Hypervisors Xen oder des KVM-Moduls.

Das Projekt wurde ursprünglich von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform kompilierten Linux-Programmen auf Architekturen, die von x86 abweichen, zu ermöglichen. Im Laufe der Jahre wurden Unterstützung für vollständige Emulation für 14 Hardwarearchitekturen hinzugefügt, und die Anzahl der emulierten Hardwaregeräte hat 400 überstiegen. Für die Version 8.2 wurden mehr als 3200 Änderungen von 238 Entwicklern vorgenommen.

Wichtige Verbesserungen in QEMU 8.2:

  • Es wurde ein virtio-sound-Gerät hinzugefügt, das die Emulation einer Soundkarte für die Aufnahme und Wiedergabe von Ton im Gast-System durch einen Sound-Backend (pulseaudio, sdl oder coreaudio), der auf der Host-Systemseite arbeitet, ermöglicht. Um das Soundgerät im Linux-Kernel für das Gast-System zu emulieren, muss die Option CONFIG_SND_VIRTIO aktiviert sein.
  • Ein virtuelles Grafikinterface (VGI, Virtual Graphics Interface) rutabaga mit der Implementierung einer virtuellen GPU (virtio-gpu) wurde hinzugefügt, die an das zuvor verfügbare VirGL erinnert und ebenfalls die Verwendung einer virtuellen GPU für 3D-Rendering im Gast-System ermöglicht, ohne exklusiven direkten Zugriff auf die physische GPU zu gewähren. Der Code rutabaga wurde im Rahmen des Android/CrosVM-Projekts entwickelt und ermöglicht die Nutzung des Android-Plattformemulators mit dem normalen QEMU.
  • Ein hv-balloon-Gerät mit der Implementierung des Protokolls für dynamisches Speichermanagement (Dynamic Memory) für Hyper-V wurde hinzugefügt, das es ermöglicht, während des Betriebs nicht verwendete Seiten des Speichers an das Host-System zurückzugeben und bei Speicherknappheit zusätzliche anzufordern. Das neue Gerät kann als Alternative zu virtio-balloon für Windows-Gastsysteme angesehen werden, das auf der Host-Systemseite einen Backend verwendet, der das Dynamic Memory-Protokoll unterstützt.
  • Ein Universal Flash Storage-Gerät zur Emulation eines Flash-Laufwerks wurde vorgeschlagen.
  • Der Treiber für Blockgeräte NBD (Network Block Device) hat Unterstützung für eine Protokollerweiterung hinzugefügt, die zur Leistungssteigerung 64-Bit-Offsets bei der Verarbeitung von großen Datenmengen verwendet.
  • Das Kommando dump-guest-memory unterstützt jetzt die Ausgabe im Standardformat kdump.
  • Die Unterstützung für die Emulation von UFS wurde hinzugefügt, wobei neue Geräte ufs und ufs-lu verwendet werden.
  • Im VFIO (Virtual Function I/O) wurde die Unterstützung des P2P-Migrationsmodus hinzugefügt, und die Möglichkeit zur dynamischen Zuweisung von MSI-X wurde implementiert. Es wurden Vorbereitungen für den Übergang zu einem neuen Backend IOMMUFD getroffen.
  • Im Gerät virtio-mem wurde der Modus „dynamic-memslots=on“ implementiert, um mehrere Speicherslots dynamisch anstelle einer statischen Zuweisung eines großen Slots zuzuweisen. Die Verwendung dieses Modus ermöglicht eine Reduzierung des Speicherverbrauchs bei großen virtio-mem-Geräten, die in der VM eine geringe Menge an Speicher bereitstellen.
  • Im Emulator der x86-Architektur wurde bei der Emulation der Hypervisor-Umgebung Xen auf Basis von KVM die Unterstützung für die PV-Konsole und Netzwerkgeräte sichergestellt, und die Kommandos für Block- und Netzwerkgeräte wurden vereinfacht. Der klassische TCG-Codegenerator hat Unterstützung für SHA-Instruktionen hinzugefügt.
  • Im Emulator der ARM-Architektur wurde die Emulation von CPU Cortex-A710 und Neoverse-N2 implementiert. Unterstützung für die Prozessorerweiterungen PACQARMA3, EPAC, Pauth2, FPAC, FPACCOMBINE, TIDCP1, MOPS, HBC und HPMN0 wurde hinzugefügt. Für die Xilinx Versal-Platine wurde die Modellierung der Geräte CFU/CFI und TRNG realisiert.
  • Im Emulator der RISC-V-Architektur wurde ein Satz von vektorgestützten kryptografischen Instruktionen implementiert. Unterstützung für virtuelle IRQs und die Filterung von IRQs wurde hinzugefügt. Die Unterstützung für die Erweiterungen Zicond wurde stabilisiert. Unterstützung für Virtualisierungs-Erweiterungen AIA (Advanced Interrupt Architecture) über KVM wurde hinzugefügt.
  • Im Emulator der HPPA-Architektur wurde die Emulation der 64-Bit-CPU PA-RISC 2.0 und des Systems C3700, einschließlich des Astro-Speichercontrollers und der PCI-Brücken Elroy, sichergestellt.
  • Im Emulator der LoongArch-Architektur wurde die Emulation der CPU Loongson LA132 implementiert. Unterstützung für die Instruktionserweiterung LASX und die Instruktion PRELDX wurde hinzugefügt.
  • Im Emulator der s390x-Architektur wurde die Unterstützung von vfio-ap für die Durchleitung des Crypto-Adapters für sichere Gästesysteme hinzugefügt.
  • Im Tricore-Emulator wurde die Unterstützung für die TC37x-Prozessoren (ISA 1.6.2) und die Instruktionen CRCN, FTOU, FTOHP, HPTOF hinzugefügt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4