Projekt-Releases . Als Emulator ermöglicht QEMU das Ausführen von Programmen, die für eine bestimmte Hardwareplattform erstellt wurden, auf einem System mit völlig anderer Architektur, zum Beispiel die Ausführung einer Anwendung für ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht die Codeausführung in einer isolierten Umgebung eine nahezu native Systemleistung durch die direkte Ausführung von Instruktionen 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 kompilierten Linux-Programmen 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 hat 400 überschritten. Bei der Vorbereitung von Version 4.1 wurden mehr als 2000 Änderungen von 276 Entwicklern vorgenommen.
Schlüssige , die in QEMU 4.1 hinzugefügt wurden:
- Der x86-Emulator unterstützt jetzt die CPUs Hygon Dhyana und Intel SnowRidge. Die Emulation der RDRAND-Erweiterung (hardwarebasierter Pseudorandomnumbergenerator) wurde hinzugefügt. Die Flags
md-clear und mds-no zur Steuerung des Schutzes gegen Angriffe (Microarchitectural Data Sampling) auf Intel-Prozessoren wurden hinzugefügt. Es ist nun möglich, die Topologien der integrierten Schaltungen mithilfe des Flags „-smp …,dies=“ zu bestimmen. Eine Versionskontrolle wurde für alle x86-CPU-Modelle implementiert; - Der SSH-Blocktreiber wurde von der Verwendung umgestellt findet man ;
- Im virtio-gpu-Treiber (virtuelle GPU, entwickelt im Rahmen des Projekts ) wurde die Unterstützung für das Auslagern von 2D/3D-Zeichenvorgängen in den externen Prozess vhost-user (z. B. vhost-user-gpu) hinzugefügt.
- Der ARM-Architektur-Emulator unterstützt jetzt die ARMv8.5-RNG-Erweiterung zur Generierung von Pseudozufallszahlen. Die Unterstützung für die FPU-Emulation von Cortex-M-Chips wurde implementiert, und die Probleme mit der FPU-Emulation für Cortex-R5F wurden behoben. Ein neues System zur Anpassung der Build-Optionen im Kconfig-Stil wurde vorgeschlagen. Für den SoC Exynos4210 wurde die Unterstützung für die DMA-Controller PL330 hinzugefügt;
- Im MIPS-Architektur-Emulator wurde die Unterstützung für MSA ASE-Instruktionen bei Verwendung der Big-Endian-Byte-Reihenfolge verbessert, und die Behandlung von Divisionen durch Null wurde an die Referenzhardware angepasst. Die Leistung der MSA-Emulation für ganzzahlige Berechnungen und Umordnungsoperationen wurde gesteigert;
- Im PowerPC-Architektur-Emulator gibt es jetzt Unterstützung für die Durchleitung an die NVIDIA V100/GPU über NVLink2 mit VFIO. Für pseries wurde die Emulation des Interrupt-Controllers XIVE beschleunigt, und die Unterstützung für das Hot-Plugging von PCI-Brücken wurde hinzugefügt. Optimierungen wurden in der Emulation von Vektor-Instruktionen (Altivec/VSX) vorgenommen;
- Im RISC-V-Architektur-Emulator wurde ein neues Hardwaremodell – „spike“ – hinzugefügt. Unterstützung für ISA 1.11.0 wurde implementiert. Der 32-Bit-ABI für Systemaufrufe wurde verbessert, die Verarbeitung ungültiger Anweisungen optimiert und der integrierte Debugger verbessert. Unterstützung für die CPU-Topologie im Device Tree wurde hinzugefügt;
- Im s390-Architektur-Emulator wurde die Unterstützung für die Emulation aller Vektor-Anweisungen der Gruppe „Vector Facility“ hinzugefügt, sowie zusätzliche Elemente zur Unterstützung von gen15-Systemen (einschließlich Unterstützung für die AP Queue Interruption Facility für vfio-ap). BIOS-Unterstützung wurde implementiert, um von ECKD DASD zu booten, das über vfio-ccw an das Gastsystem gebunden ist;
- Im SPARC-Emulator für sun4m-Systeme wurden Probleme mit dem Flag „-vga none“ für OpenBIOS behoben;
- Im Emulator für Tensilica Xtensa-Prozessoren wurden Optionen für MPU (Memory Protection Unit) und exklusiven Zugriff implementiert;
- Im Befehl „qemu-img convert“ wurde die Option „—salvage“ hinzugefügt, um das unerwartete Beenden des Konvertierungsprozesses bei Auftreten von Ein-/Ausgabefehlern zu umgehen (z. B. kann dies zur Wiederherstellung von teilweise beschädigten qcow2-Dateien angewendet werden). Im Befehl
«qemu-img rebase» sorgt dafür, dass die Funktionalität gewährleistet ist, wenn für die Eingabedatei noch keine Basisdatei (backing file) erstellt wurde; - Die Möglichkeit zur Umleitung der Ausgabe wurde hinzugefügt, organisiert mit der Technologie «semihosting» (ermöglicht es dem emulierten Gerät, stdout, stderr und stdin zum Erstellen von Dateien auf der Host-Seite zu verwenden), im Backend chardev («-semihosting-config enable=on,target=native,chardev=[ID]»);
- Der Blocktreiber VMDK unterstützt jetzt das Subformat seSparse im Nur-Lese-Modus;
- Der GPIO-Emulationstreiber hat die Unterstützung für den GPIO-Controller SiFive hinzugefügt.
Quelle: opennet.ru
