Home / LinuxUser / 2007 / 06 / Die Puppe in der Puppe

Top-Beiträge

Feuerprobe für Novell
(280 Punkte bei 14 Stimmen)
Schneller mit CK
(230 Punkte bei 9 Stimmen)
Deep Purple
(229 Punkte bei 9 Stimmen)
Flyer mit Scribus und GIMP druckereigerecht erstellen
(223 Punkte bei 8 Stimmen)
Debian ≠ Linux
(220 Punkte bei 8 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Partner-Links:

PC + Linux Hilfe finden Sie unter pchilfe.org
Shopping
Yatego Deutschlands größte Shoppingmall. 7000 Shops,
2.5 Mio Artikel. Alle Bestseller, Gutscheine und Gewinnspiele.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Bei Freeware bietet Ihnen kostenlose Software Downloads von Programmen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Die Puppe in der Puppe

Virtualisierung und Emulation

Im Möbelhaus gaukeln künstliche Bücherreihen belesene Behaglichkeit vor: Das ist Virtualisierung. Emulatoren bauen dagegen gleich ganze Häuserfassaden nach, um eine lebende Stadt zu suggerieren.

Wer den ganzen Tag am Linux-Computer arbeitet, freut sich nach getaner Arbeit auf ein kleines Spielchen zur Entspannung. Wem dann Linux-Klassiker wie Mahjongg oder Frozen Bubble nicht reichen, stößt schnell an die Grenzen eines freien Betriebssystems (Abbildung 1). Ähnlich beschränkt zeigt sich Linux beispielsweise auch beim Ausfüllen der Steuererklärung oder bei der Arbeit mit hochauflösenden Grafiken. Wer solches tun möchte, muss Linux verlassen, seinen Rechner neu starten und ein auf derselben Festplatte installiertes Windows booten. Da wäre es doch viel schöner, wenn man dasselbe System direkt von Linux aus starten könnte, ohne sein Lieblingsbetriebssystem verlassen zu müssen: wie eine Puppe in der Puppe bei den berühmten russischen Matroschkas.

So schön das klingt, so schwer ist es in der Praxis zu realisieren, denn beide Betriebssysteme unterscheiden sich recht drastisch voneinander. Wer als Betreiber von Linux mit einem anderen Betriebssystem arbeiten möchte, muss so tun, als sei Linux dieses andere Betriebssystem.

Abbildung 1: Der Ausgangspunkt: Auf einem herkömmlichen Computer startet zunächst ein Betriebssystem, wie beispielsweise Linux, das wiederum die Anwendungen startet und verwaltet.

Emulation: Wetteifern und nachahmen

Vor mehr als 40 Jahren, lange bevor es Linux gab, sah sich IBM schon einmal einem ganz ähnlichen Problem gegenüber: Das neue System/360 funktionierte vollkommen anders als der beliebte, aber in der Zwischenzeit veraltete 7070-Computer. Um potentiellen Kunden den Umstieg zu erleichtern, sollten sich die alten Anwendungen auch auf dem neuen System weiter nutzen lassen. Nach einigen Tests entschied sich IBM schließlich für die Idee ihres Ingenieurs Larry Moss, der eine Kombination aus Software und einer speziellen Hardwareerweiterung vorschlug: Einmal gestartet, überwachte die Kombi jeden Schritt der alten Anwendung und übersetzte deren Befehle bei Bedarf in die des neuen System/360. So verhielt sich der neue Computer exakt wie sein Vorgänger [1].

Dieses geschickte Täuschungsmanöver von Maschine zu Maschine versetzte die Käufer des neuen Modells in die Lage, ihre alten 7070-Anwendungen weiter zu nutzen. Da die Software einen fremden Computer nachahmte, bezeichnete Larry Moss seine Entwicklung als Emulator.

Moderne Emulatoren bilden einen kompletten Computer ausschließlich auf der Software-Ebene nach. Das gelingt mittlerweile so perfekt, dass man mit ihnen ein komplettes Gast-Betriebssystem samt der dafür entwickelten Anwendungen starten kann. Auf diese Weise erhält man einen virtuellen PC oder, allgemeiner: eine virtuelle Maschine (siehe Abbildung 2).

Abbildung 2: Wie bei einer Puppe-in-der-Puppe erzeugt ein Emulator einen PC im PC. Hier laufen Windows und Word in der Emulation. Beide Anwendungen haben dabei keinen Zugriff auf das darunter liegende Linux-System.

Beispiele für bekannte und kostenlose Emulatoren sind QEMU [2] und Bochs [3]. Wie Abbildung 3 zeigt, leiten sie einfach die Bildschirmausgabe in ihr eigenes Anwendungsfenster um. Das unter dem virtuellen PC installierte Betriebssystem glaubt dagegen, einen Standard-Monitor zu nutzen.

Abbildung 3: Der Emulator QEMU in Aktion: Der von ihm bereitgestellte virtuelle PC führt unter Suse Linux ein Ubuntu-Linux aus.

Ein Emulator bietet gleich mehrere Vorteile: Zunächst einmal lässt sich das in ihm laufende System recht einfach klonen. Da der Emulator einen ganzen PC als Software nachbaut, kann man dessen aktuellen Zustand leicht einfrieren, in einem Snapshot archivieren oder auf einem anderen Computer fortsetzen.

Da die simulierte Hardware sich nicht ändert, funktioniert dieser Transfer sogar unabhängig von der real existierenden Hardware. Auf diese Weise lassen sich neue Programme gefahrlos ausprobieren und testen: Sie speichern einfach den aktuellen Emulatorzustand, installieren die gewünschten Anwendung und stellen bei Nichtgefallen den alten Stand wieder her.

Neben solchen reinen Software-Lösungen gibt es auch Hardware-Emulatoren. Wie im Fall des historischen System/360 findet man aber auch Mischlösungen. Ein aktuelles Beispiel dafür bietet die Spielkonsole Playstation 3 von Sony. In der ersten Fassung enthielt sie noch eine Hardwarekomponente, mit der auch Playstation-2-Spiele auf der Konsole liefen. In der aktuellen europäischen Version übernimmt diese Aufgabe ein reiner Software-Emulator.

Dieses Beispiel zeigt ein weiteres Haupteinsatzgebiet von Emulatoren: Mit diesen Programmen erwecken Sie nicht mehr erhältliche Hard- und Software zu neuem Leben. So verrichten plötzlich etwa die gute, alte Buchhaltung aus DOS-Zeiten oder die legendäre WordPerfect-Textverarbeitung aus gleicher Epoche wieder ihre Dienste.

Im Fokus solcher Emulationen stehen besonders die Videospielkonsolen und Heimcomputer des vorigen Jahrhunderts. Fans bilden die alten Schätzchen bis aufs Bit genau in Software nach. Auf diese Weise kommen Klassiker wie Commodore Amiga [4], Atari ST [5] oder der C=64 [6] auf Linux-PCs wieder zu neuen Ehren (Abbildung 4).

Abbildung 4: Die Emulation UAE belebt die alte Hardware des Commodore Amiga. Hier läuft dessen grafische Oberfläche in einem Fenster unter Linux.

Emulatoren verursachen systembedingt aber auch Probleme: Da sie sämtliche Hardwarekomponenten des Computers möglichst exakt simulieren müssen, schlucken sie eine Menge Rechenleistung. Als Faustregel gilt: Je älter ein Betriebssystem, desto schneller lässt es sich in einem Emulator betreiben. Dagegen arbeitet ein blutjunges Ubuntu unter Qemu, als würde man es auf einem längst in die Jahre gekommenen Rechner betreiben.

Unbekannte virtuelle Maschinen

Virtualisierungslösungen findet man auch dort, wo man sie eigentlich nicht vermutet. So steckt hinter der BIOS-Alternative OpenFirmware ebenfalls eine virtuelle Maschine [16]. Die in den Computer eingebaute Hardware kann dort eigene Erweiterungen zur Basiskonfiguration installieren – und zwar unabhängig von der Hardware-Plattform.

Einige Prozessoren oder Computer lassen sich in einen Kompatibilitätsmodus versetzen. Alle heutigen x86-Prozessoren beispielsweise können immer noch Programme für ihre wesentlich älteren Vorgänger ausführen. Der Prozessor-Hersteller Transmeta geht sogar noch einen Schritt weiter: Um mit den Intel- und AMD-Prozessoren kompatibel zu bleiben, übersetzen Transmeta-Produkte einfach alle Befehle vor der Ausführung in ihr eigenes Format.

Ein weiteres Beispiel für Virtualisierungen ist der Commodore 128 aus den 80er Jahren des vergangenen Jahrhunderts. Der Heimcomputer hatte seinen eigenen Betriebsmodus, konnte aber zusätzlich auch Anwendungen seines Bruders C=64 sowie von CP/M, dem damals aktuellen PC-Betriebssystem, verarbeiten.

Virtualisierung: So tun, als ob

Bei näherem Hinsehen entpuppt es sich allerdings als unsinnig, eine komplette Intel-CPU nachzubilden, wenn sie sowieso im Computer steckt: Stattdessen könnte man den Prozessor doch einfach direkt nutzen und bräuchte nur den Rest des gewünschten Zielsystems zu simulieren. Diese Idee lässt sich auf alle weiteren Komponenten ausdehnen: Man bildet nur noch die gerade notwendigen Teile der Hardware durch Software nach. In einem solchen Fall spricht man nicht mehr von einer Emulation, sondern von Virtualisierung.

Entfernt man aus einer Emulation einfach die Prozessorsimulation, spricht man von einer Hardware- oder Systemvirtualisierung. Qemu lässt sich beispielsweise mit der Erweiterung KQemu [2] auf diese Arbeitsweise ein, und auch das kommerzielle VMware [7] verzichtet auf die Nachbildung des Prozessors. Das so erzielte Plus an Geschwindigkeit bezahlt der Anwender allerdings mit einer Bindung an einen speziellen Prozessortyp. So funktionieren die beiden genannten Lösungen beispielsweise nicht ohne weiteres mit einem PowerPC.

Von Wirten und Gästen

Wer sich mit Virtualisierung beschäftigt, stößt unweigerlich auf die Begriffe Host und Guest. Als Host (Wirt) bezeichnet man den Rechner, der eine simulierte Computerumgebung bereitstellt. In dieser startet und verwaltet der Host weitere Betriebssysteme, die so genannten Guests (Gäste). Linux ist zum Beispiel der Wirt, wenn Qemu eine virtuelle Maschine bereitstellt. Das unter Qemu gestartete Windows ist in diesem Fall der Gast.

Kommentare
Einem Freund empfehlen    Druckansicht

Wertung: 97 Punkte (14 Stimmen)

Infos zum Autor

Tim Schürmann

Tim Schürmann ist Diplom-Informatiker und derzeit als freier Autor unterwegs. Mehr Informationen finden Sie auf seiner Homepage unter www.tim-schuermann.de.


Infos zur Publikation

Dieser Artikel stammt aus der Zeitschrift LinuxUser.

Aktuelles Cover

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Für weitere Informationen zum Heft klicken Sie hier.

Möchten Sie ein Probeabo (drei Ausgaben für 3 Euro) oder ein Jahresabo (ab EUR 56,10) bestellen, klicken Sie hier.

Tipp der Woche

(c) sxc.hu
Shell-Sitzungen aufzeichnen mit script
Marcel Hilzinger, 08.03.2010 04:50, 4 Kommentare

Wer kennt das Problem nicht: History gelöscht oder in verschiedenen Terminals gearbeitet und weg sind die wichtigen Befehlsfolgen, die man sich eigentlich notieren wollte. Auch zu lange Ausgab...

Aktuelle Fragen

gnome-panel CPU-Last 100%
Enrico Päschke, 09.03.2010 14:15, 4 Antworten
Hallo, ich verwende Gnome (2.28) und Debian Testing. Seit kurzem habe ich das Problem, dass de...
Schreibschutz aufheben
Christoph-J.Walter , 08.03.2010 10:31, 3 Antworten
Ich habe eine Mail mit Anhang (seriös) erhalten. Das Dokument ist schreibgeschützt. Ich möchte ab...
gnome-desktop unaufgefordert installiert
hans kellermann, 28.02.2010 13:05, 6 Antworten
Hi Linuxers, (SUSE 11.2, KDE4.4.0) updater-applet hatte einen großen Schwung an neuen updates, d...
KDE-desktop Verzeichnis "Programme"
hans kellermann, 28.02.2010 12:15, 10 Antworten
Hi Linuxers, unter openSuse 11.2 ist bei KDE 4.4.0 das desktop Verzeichnis "Programme" absolut l...
Leo in Firefox als Suchmaschine hinzufügen
Ugglan , 27.02.2010 13:11, 4 Antworten
Hallo, kleine, aber nervige Sache: In den Voreinstellungen der Suchmaschinen, die in Firefox n...