QEMU

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
QEMU
Logo
Entwickler Fabrice Bellard
Aktuelle Version 2.12.0[1]
(24. April 2018)
Betriebssystem Windows, GNU/Linux, BSD, macOS, Haiku[2]
Programmiersprache C[3]
Kategorie Emulation, Virtualisierung
Lizenz GPL 2
deutschsprachig nein (Versionen ab 1.5 bieten eine deutschsprachige GTK-Bedienoberfläche)
https://www.qemu.org/

QEMU (von englisch „Quick Emulator“) ist eine freie Virtualisierungssoftware, die die gesamte Hardware eines Computers emuliert und durch die dynamische Übersetzung der Prozessorinstruktionen des Gastprozessors (englisch guest) in Instruktionen für den Wirtprozessor (englisch host) eine sehr gute Ausführungsgeschwindigkeit erreicht.

QEMU emuliert Systeme mit den folgenden Prozessorarchitekturen: x86, x64, PowerPC (32- und 64-Bit), ARM (32- und 64-Bit), Alpha, CRIS, LatticeMico32, m68k bzw. Coldfire, MicroBlaze, MIPS, Moxie, SH-4, S/390, Sparc32/64, TriCore, OpenRISC, Unicore und Xtensa (Stand 2015).[4][5]

QEMU ist auf den Betriebssystemen GNU/​Linux, Windows, FreeBSD, NetBSD, OpenBSD, OpenSolaris, Mac OS X/​OS X/​macOS und Haiku lauffähig. Es kann den gesamten Status einer virtuellen Maschine so speichern, dass diese auf ein anderes Wirtsystem (englisch host system) übertragen werden kann und dort weiterlaufen kann (Live-Migration).

Unter Linux, BSD und macOS unterstützt QEMU auch die „Userspace“-Emulation. Diese ermöglicht es, dass Programme, die für eine andere Architektur kompiliert wurden, im Userspace betrieben werden können. Dabei werden die Prozessoren x86, PowerPC (32- und 64-Bit), Alpha, ARM (32- und 64-Bit), CRIS, MicroBlaze, 32-Bit-MIPS, S/390, SH-4, Sparc32/64, m68k/ColdFire und Unicore unterstützt.

Hardware-Plattformen[Bearbeiten | Quelltext bearbeiten]

x86[Bearbeiten | Quelltext bearbeiten]

QEMU mit dem freien Betriebssystem ReactOS

Für virtuelle x86-Maschinen auf x86-Rechnern stand mit kqemu[6] ein Zusatzmodul bereit, das durch die native Ausführung von geeigneten Teilen des Maschinencodes einen erheblichen Geschwindigkeitszuwachs bewirkte. Da die Weiterentwicklung seit QEMU 0.12 auf KVM fokussiert ist[7], kann das Beschleunigermodul kqemu nur in QEMU bis Version 0.11 verwendet werden.

Aktuelle Versionen von QEMU nutzen Hardware-Virtualisierung – auf Linux-Hosts die Kernel-based Virtual Machine (KVM), die Prozessoren mit den Hardware-Virtualisierungstechniken von Intel (Intel VT) oder AMD (AMD-V) unterstützt. Für macOS und Windows steht mit dem Intel Hardware Accelerated Execution Manager (HAXM) eine vergleichbare Lösung zur Verfügung. Damit erreicht QEMU auf allen gängigen Desktop-Betriebssystemen eine sehr gute Geschwindigkeit.

Mittels HX DOS Extender war QEMU auch in FreeDOS und DR-DOS lauffähig.

Emuliert wird neben dem Hauptprozessor auch:

Das verwendete PC-BIOS ist SeaBIOS vom coreboot-Projekt, das das Bochs-BIOS früherer Versionen ersetzt. Für VGA wird das Plex86-BIOS aus dem Bochs-Projekt genutzt.

PowerPC[Bearbeiten | Quelltext bearbeiten]

Als PowerPC-Firmware wird Open Hack'Ware, eine Open-Firmware-kompatible Firmware, verwendet.

PowerMac[Bearbeiten | Quelltext bearbeiten]

QEMU emuliert die folgenden PowerMac-Peripheriegeräte:

  • UniNorth PCI Bridge
  • PCI-VGA-kompatible Grafikkarte mit VESA Bochs Extensions
  • zwei PMAC-IDE-Interfaces mit Festplatten- und CD-ROM-Unterstützung
  • NE2000-PCI-Adapter
  • Non Volatile RAM
  • VIA-CUDA mit ADB-Tastatur und -Maus

PReP[Bearbeiten | Quelltext bearbeiten]

Die PowerPC Reference Platform (PReP) bezeichnet einen Standard für PowerPC-basierte Computer und soll eine Referenz-Implementierung darstellen. PReP wurde bereits von der Common Hardware Reference Platform (CHRP) abgelöst.

QEMU emuliert die folgenden PReP-Peripheriegeräte:

  • PCI Bridge
  • PCI-VGA-kompatible Grafikkarte mit VESA Bochs Extensions
  • zwei IDE-Interfaces mit Festplatten- und CD-ROM-Unterstützung
  • Diskettenlaufwerk
  • NE2000-Netzwerkadapter
  • serielle Schnittstelle
  • PReP Non Volatile RAM
  • PC-kompatible Tastatur und Maus

Sparc[Bearbeiten | Quelltext bearbeiten]

Sun-SPARC-Architektur = (Scalable Processor ARChitecture)

Als BIOS der JavaStation (sun4m-Architektur) wurde bis Version 0.8.1 Proll[8], ein PROM-Ersatz, verwendet, in Version 0.8.2 wurde es durch OpenBIOS ersetzt.

QEMU emuliert die folgenden sun4m-Peripheriegeräte:

  • IOMMU
  • TCX Frame buffer
  • Lance (Am7990) Ethernet
  • Non Volatile RAM M48T08
  • Slave I/O: timers, interrupt controllers, Zilog serial ports

Gasterweiterungen[Bearbeiten | Quelltext bearbeiten]

Ähnlich wie für andere Virtualisierungslösungen wie VirtualBox stehen auch für QEMU sogenannte Gasterweiterungen (englisch Guest Additions) für verschiedene Gastbetriebssysteme zur Verfügung. Sie dienen dazu die Integration zwischen Wirt- und Gastsystem zu erweitern bzw. die Funktion und Datendurchsatz zu verbessern. Beispielsweise kann durch die Gasterweiterung Qemu Guest Agent im laufenden Betrieb des Gastsystems eine Gesamtsicherung durchgeführt werden - ein Stoppen, Erstellung der Sicherung und danach Neustarten des Gastsystem um ein konsistenes Abbild zu erzeugen ist damit nicht mehr nötig. Andere Erweiterungen stellen verbesserte Schnittstellen zu virtuellen Hardwareschnittstellen wie speziellen Netzwerkkarten oder virtuelle SATA-Schnittstellen dar. Da dabei nicht herkömmliche Hardware nachgebildet wird kann durch die speziell gestaltete virtuellen Schnittstelle ein höherer Datendurchsatz erzielt werden. Während Linux und die meisten üblichen Linuxdistributionen diese Gasterweiterungen und Unterstützung für virtuelle Geräte im Gastsystem automatisch mitbringen bzw. die Nachinstallation aus der jeweiligen Distribution erlauben, sind für Gastsysteme wie Windows die sogenannten Virtio-Treiber extra zu installieren.[9]

Bei Verwendung von SPICE als Konsolenschnittstelle, SPICE wird von QEMU seit dem Jahr 2010 direkt unterstützt, erlauben die SPICE-Gasterweiterungen bei grafischen Oberflächen im Gastsystem, dass sich beispielsweise beliebige Grafikauflösungen in der virtuellen Grafikkarte durch die Wahl der Fenstergröße am Ausgabegerät vorgeben lassen.[10]

Weitere Details[Bearbeiten | Quelltext bearbeiten]

Das Starten von Live-CD- und Startdisketten-Abbildern ist möglich.

Um QEMU unter Windows zu verwenden, sind keine Administratorrechte notwendig. Auf einem USB-Stick lässt sich QEMU so als portable Software verwenden. Für die Installation eines 64-Bit-Betriebssystems unter Mac OS X ist die Rosetta-Erweiterung von Apple erforderlich.[11]

Viele Virtualisierungslösungen (VirtualBox, Xen, FAUmachine, Win4BSD, Win4Solaris, Win4Lin) nutzen Teile des Quelltextes von QEMU.

Dank der Quelloffenheit und der Konfiguration mit Startoptionen ist die Entwicklung von Werkzeug- und Hilfsprogrammen für QEMU unproblematisch. Durch den QEMU-Manager und AQEMU[12] lässt sich QEMU über eine grafische Benutzeroberfläche bedienen.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Literatur[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Commons: QEMU – Album mit Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. download.qemu.org. (abgerufen am 8. Mai 2018).
  2. Liste der unterstützten Betriebssysteme (englisch)
  3. QEMU. Open Hub (abgerufen am 27. Dezember 2009).
  4. Emulator: Qemu 1.0 ist fertig – Artikel bei Golem.de, vom 2. Dezember 2011
  5. Qemu 1.2.0 verbessert Live Migration, Heise Zeitschriften Verlag, zugegriffen: 7. September 2012
  6. Documentation/KQemu
  7. QEMU 0.12.0-rc1 does not support KQEMU. 7. Dezember 2009, abgerufen am 10. April 2012 (englisch, Fehlermeldung bei Launchpad).
  8. Proll BIOS
  9. Windows Virtio Drivers. Abgerufen am 24. Dezember 2017.
  10. Understanding Guest Agents and Other Tools. Abgerufen am 24. Dezember 2017.
  11. Virtualisierung mit Q und Qemu – Artikel bei Netzwelt.de, vom 27. Juni 2011
  12. AQEMU