Projektveröffentlichung . Als Emulator ermöglicht QEMU das AusfĂŒhren von Programmen, die fĂŒr eine Hardwareplattform kompiliert wurden, auf einem System mit völlig anderer Architektur, beispielsweise das AusfĂŒhren einer Anwendung fĂŒr ARM auf einem x86-kompatiblen PC. Im Virtualisierungsmodus erreicht QEMU in einer isolierten Umgebung eine nahezu native CodeausfĂŒhrungsleistung durch direkte BefehlsausfĂŒhrung auf der CPU und die 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-BinĂ€rdateien auf anderen Architekturen zu ermöglichen. Im Laufe der Entwicklung wurde die UnterstĂŒtzung fĂŒr die vollstĂ€ndige Emulation von 14 Hardware-Architekturen hinzugefĂŒgt, und die Anzahl der emulierten Hardware-GerĂ€te ĂŒberstieg 400. FĂŒr Version 5.0 wurden ĂŒber 2800 Ănderungen von 232 Entwicklern vorgenommen.
Hauptmerkmale , die in QEMU 5.0 hinzugefĂŒgt wurden:
- Die Möglichkeit, Teile des Dateisystems der Host-Umgebung in das Gastsystem mittels . Das Gastsystem kann ein Verzeichnis einbinden, das auf der Seite des Host-Systems fĂŒr den Export markiert ist, was die Organisation des gemeinsamen Zugriffs auf Verzeichnisse in Virtualisierungssystemen erheblich vereinfacht. Im Gegensatz zu Netz-FS wie NFS und virtio-9P ermöglicht virtiofs eine Leistung, die der einer lokalen Datei-
- live-Migration von Daten externer Prozesse, die den QEMU D-Bus verwenden;
- Die Möglichkeit zur Nutzung von zur UnterstĂŒtzung des Hauptspeichers des Gastsystems. Das Backend wird mit der Option â-machine memory-backendâ festgelegt;
- Ein neuer Filter âcompressâ, der fĂŒr die Erstellung komprimierter Backups von Images verwendet werden kann;
- Der Befehl âqemu-img measureâ kann jetzt mit LUKS-Images arbeiten, und im Befehl âqemu-img convertâ wurde die Option ââtarget-is-zeroâ zum Ăberspringen der Nullung des Zielimages hinzugefĂŒgt;
- Es wurde experimentelle UnterstĂŒtzung fĂŒr den Prozess qemu-storage-daemon hinzugefĂŒgt, der den Zugriff auf das Blocklevel von QEMU und die QMP-Befehle ermöglicht, einschlieĂlich der Arbeit mit BlockgerĂ€ten und eines integrierten NBD-Servers, ohne eine vollstĂ€ndige virtuelle Maschine starten zu mĂŒssen;
- Im ARM-Emulator wurde die Möglichkeit zur Emulation der CPU Cortex-M7 hinzugefĂŒgt, und die UnterstĂŒtzung fĂŒr die Platinen tacoma-bmc, Netduino Plus 2 und Orangepi PC wurde gewĂ€hrleistet. Im emulierten Maschinen 'virt' wird die UnterstĂŒtzung fĂŒr die GerĂ€te vTPM und virtio-iommu hinzugefĂŒgt. Die Möglichkeit, Host-Systeme AArch32 zum Starten von KVM-Gastumgebungen zu verwenden, wurde als veraltet erklĂ€rt. Die UnterstĂŒtzung zur Emulation folgender ArchitekturfunktionalitĂ€ten wurde implementiert:
- ARMv8.1: VHE, VMID16, PAN, PMU
- ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
- ARMv8.3: RCPC, CCIDX
- ARMv8.4: PMU, RCPC
- Im HPPA-Architektur-Emulator wurde die UnterstĂŒtzung fĂŒr eine grafische Konsole unter Verwendung des grafischen GerĂ€ts HP Artist hinzugefĂŒgt;
- Im MIPS-Architektur-Emulator wurde die UnterstĂŒtzung fĂŒr den Befehl GINVT (Global Invalidation TLB) hinzugefĂŒgt;
- Im PowerPC-Architektur-Emulator fĂŒr âpowernvâ wurde die Emulation der Hardwarebeschleunigungsfunktionen KVM fĂŒr den Betrieb von Gastystemen hinzugefĂŒgt.
KVM mit klassischem Code-Generator TCG (Tiny Code Generator). Zur Emulation des persistenten Speichers wurde die UnterstĂŒtzung fĂŒr in Dateien spiegelte NVDIMM hinzugefĂŒgt. FĂŒr âpseriesâ wurde die Notwendigkeit eines Neustarts fĂŒr die Abstimmung der FunktionalitĂ€t der Interrupt-Controller XIVE/XICS im âic-mode=dualâ entfernt. - Im RISC-V-Architektur-Emulator fĂŒr die Platinen âvirtâ und âsifive_uâ wurde die UnterstĂŒtzung fĂŒr Sycon-Treiber in Linux zur Verwaltung der Energieversorgung und zum Neustart implementiert. FĂŒr die Platine âvirtâ wurde die UnterstĂŒtzung fĂŒr Goldfish RTC hinzugefĂŒgt. Eine experimentelle Implementierung von Hypervisor-Erweiterungen wurde hinzugefĂŒgt.
- Im s390-Architektur-Emulator wurde die UnterstĂŒtzung fĂŒr AIS (Adapter Interrupt Suppression) im KVM-Modus hinzugefĂŒgt.
Quelle: opennet.ru
