Die Veröffentlichung des QEMU 7.1 Projekts wurde vorgestellt. Als Emulationssoftware ermöglicht QEMU das Ausführen von Programmen, die für eine bestimmte Hardwareplattform erstellt wurden, auf einem System mit einer ganz anderen Architektur, beispielsweise die Ausführung einer Anwendung für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU eine nahezu hardwareähnliche Leistung im isolierten Umfeld durch direkte Ausführung der Anweisungen auf der CPU und die Nutzung des Hypervisors Xen oder des KVM-Moduls.
Ursprünglich wurde das Projekt von Fabrice Bellard ins Leben gerufen, um die Ausführung von für die x86-Plattform erstellten ausführbaren Linux-Dateien auf anderen Architekturen 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. Für die Version 7.1 wurden über 2800 Änderungen von 238 Entwicklern implementiert.
Wesentliche Verbesserungen, die in QEMU 7.1 hinzugefügt wurden:
- Auf der Linux-Plattform wurde die Option zero-copy-send implementiert, die das Übertragen von Speicherseiten bei der Live-Migration ohne zwischenzeitliche Pufferung ermöglicht.
- Im QMP (QEMU Machine Protocol) wurde die Möglichkeit zur Verwendung des Befehls block-export-add für den Export von NBD-Images mit Informationen über Seiten im Zustand „dirty“ hinzugefügt. Außerdem wurden neue Befehle ‚query-stats‘ und ‚query-stats-schema‘ zur Abfrage von Statistiken aus verschiedenen QEMU-Subsystemen eingeführt.
- Im Agenten für Gastbetriebssysteme wurde die Unterstützung für die Solaris-Plattform verbessert, und es wurden neue Befehle ‚guest-get-diskstats‘ und ‚guest-get-cpustats‘ zur Anzeige des Zustands von Festplatten und CPUs hinzugefügt. Der Befehl ‚guest-get-disks‘ gibt Informationen aus NVMe SMART aus, und der Befehl ‚guest-get-fsinfo‘ gibt Daten über den Typ des NVMe-Busses zurück.
- Ein neuer Emulierer für LoongArch, der die 64-Bit-Variante des Befehlssatzes LoongArch (LA64) unterstützt, wurde hinzugefügt. Der Emulierer unterstützt Loongson-Prozessoren der 3.5000-Serie und die Northbridge Loongson 7A1000.
- Im ARM-Emulator wurden neue Arten von emulierten Maschinen realisiert: Aspeed AST1030 SoC, Qualcomm und AST2600 / AST1030 (fby35). Die Unterstützung für die Emulation der CPUs Cortex-A76 und Neoverse-N1 sowie für die Prozessorerweiterungen SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) und Befehle zur Blockierung von Cache-Lecks während der spekulativen Ausführung von Anweisungen auf der CPU wurde hinzugefügt. Für ‚virt‘-Maschinen wurde die Emulation des Interrupt-Controllers GICv4 realisiert.
- Im x86-Architektur-Emulator für KVM Unterstützung für die Virtualisierung des LBR-Mechanismus (Last Branch Record) wurde hinzugefügt.
- Im HPPA-Architektur-Emulator wurde ein neues Firmware-Update auf Basis von SeaBIOS v6 vorgeschlagen, das die Verwendung der PS/2-Tastatur im Boot-Menü unterstützt. Die Emulation des seriellen Ports wurde verbessert. Zusätzliche Konsolenschriften STI wurden hinzugefügt.
- Im MIPS-Architektur-Emulator für Nios2-Platinen (-machine 10m50-ghrd) wurde die Emulation des Vektorgesteuerten Interruptcontrollers (Vectored Interrupt Controller) und des Shadow-Register-Sets implementiert. Die Bearbeitung von Ausnahmen wurde verbessert.
- Im OpenRISC-Architektur-Emulator für die Maschine 'or1k-sim' wurde die Möglichkeit hinzugefügt, bis zu 4 UART-Geräte 16550A zu verwenden.
- Im RISC-V-Architektur-Emulator wurde die Unterstützung für neue Befehlssatzerweiterungen (ISA) gemäß Spezifikation 1.12.0 hinzugefügt sowie die Unterstützung der Sdtrig-Erweiterung und die Verbesserung der Unterstützung für Vektor-Instruktionen. Die Debugging-Funktionen wurden erweitert. Im emulierten 'virt'-System wurde die Unterstützung für TPM (Trusted Platform Module) hinzugefügt und im 'OpenTitan'-System die Unterstützung für Ibex SPI.
- Im 390x-Architektur-Emulator wurde die Unterstützung für VEF 2 (Vector-Enhancements Facility 2) gewährleistet. Im s390-ccw BIOS wurde die Möglichkeit implementiert, von Festplatten mit einer Sektorgröße, die von 512 Bytes abweicht, zu booten.
- Im Xtensa-Architektur-Emulator wurde die Unterstützung für lx106-Kerne und Objektcodes zum Testen des Caches hinzugefügt.
Quelle: opennet.ru
