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

Top-Beiträge

GIMP - Auswahl und Ebenen
(324 Punkte bei 38 Stimmen)
GIMP - Laserschwert
(322 Punkte bei 41 Stimmen)
Panorama ohne Weitwinkel
(272 Punkte bei 16 Stimmen)
Ein erstes Resümee
(247 Punkte bei 20 Stimmen)
Re: Mehrere Partitionen auf USB-Stick
(233 Punkte bei 9 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 8500 Shops,
3.1 Mio Artikel. Alle Bestseller, Gutscheine und Themenwelten.

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

01.06.2007 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.

Aktuelles Heft bestellen
Kommentare
Einem Freund empfehlen    Druckansicht

640 Hits
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

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Schöneres Gnome mit Faenza
Schöneres Gnome mit Faenza
Marcel Hilzinger, 19.08.2010 14:49, 0 Kommentare

Wer seinen Desktop liebt, verpasst ihm ab und zu ein optisches Update. Sehr gut eignen sich dazu neue Fensterdekorationen, ein neues Farbschema und natürlich ein neues Symbolset. Ein besonders...

Aktuelle Fragen

SUSE und Windows parallel betreiben, reparieren des BOOTMANAGERS
oli m., 31.08.2010 10:17, 6 Antworten
ich betreibe XP, VISTA, W7 und SUSE parallel auf einer Festplatte. wenn ich SUSE als letztes ins...
kmail link verweist auf firefox, umstellung wieder auf konqueror ???
oli m., 31.08.2010 10:06, 2 Antworten
seit firefox mit suse installiert wird, startet ein link in einer email automatisch auch firefox....
SUSE 11.3 - nvidia 9800GT+ - DUALMONITOR Installation/Einstellung
oli m., 31.08.2010 09:57, 2 Antworten
Grafikkarte: nvidia GForce 9800GT+ Monitore: 2x Medion MD 20094 1920x1200 SUSE 11.3 nach ins...
Tastatur / Maus blockiert
Roland M. Egloff, 30.08.2010 22:56, 0 Antworten
Hallo Linux Freunde, Die folgende Info. ist vielleicht für jemand nutzlich... Ich musste mi...
Erstellung von Newslettern unter Suse 11.3
Klaus Werner, 27.08.2010 09:45, 1 Antworten
Moin suchen ein Programm zur Erstellung von Newslettern. sollte unter Linux laufen. Jemand eine...