Ich habe in diesem Blog lauthals über die Fragmentierung der Softwarewelt gejammert und mein Patentrezept dagegen verkündet. Es handelt sich um die virtuelle Maschine – ein eigentlicher Geniestreich in der Welt der Computerei, der laut diesem Beitrag schon 1965 von IBM-Ingenieuren erdacht wurde. Der Trick ist, dass man ein System nicht direkt auf der Hardware ausführt. Stattdessen lässt man es auf virtueller Hardware laufen. Diese virtuelle Hardware wird von einem Programm bereitgestellt, das seinerseits in seiner eigenen Umgebung zu Hause ist. Man arbeitet parallel mit mehreren Betriebssystemen und kann sogar Programme ausführen, die für eine andere Systemarchitektur entwickelt wurden. Sie wird in Software nachgebildet und der auszuführenden Software vorgegaukelt.

140214-virtualbox01.jpg
Virtuell ist aber auch originell!

Man spricht in diesem Fall von einer Emulation. Selbstverständlich fordert die Emulation ihren Tribut. Da man meist relativ alte Hardware emuliert, die man in Echt gar nicht mehr zur Verfügung hat, ist das meist kein Problem. Es kommt vor, dass die Software auf dem emulierten System schneller läuft, als sie das früher auf echter Hardware getan hat – dem Mooreschen Gesetz sei Dank!

Für Rechenzentren und für normale User
In Rechenzentren hilft die Virtualisierung, Ressourcen optimal zu verteilen. Im privaten Umfeld kann man mit einer virtuellen Maschine mehrere Betriebssysteme vorhalten, etwa das zum Untergang verdammte XP, OS 7.6 oder auch alte Spielplattformen. Den Tüftlern unter uns empfehle ich, die waghalsigen Experimente in eine virtuelle Maschine zu verlagern. Wenn etwas schief geht, lässt sich das in einer virtuellen Maschine viel einfacher reparieren als bei der Arbeitsmaschine. VirtualBox speichert Systemzustände bei Bedarf als Sicherungspunkte, sodass man bei einem Problem zu einem früheren Systemzustand zurückkehren kann. Man kann aber auch einfach die Systemfestplatte seiner Experimentier-Umgebung sichern. Sie erscheint ausserhalb der virtuellen Maschine als einzelne grosse Datei, die man wie eine normale Datei sichern und bei Bedarf wiederherstellen kann. Ein kleines, aber praktisches Detail ist, dass sich beim Beenden der virtuellen Maschine (VM) der Zustand sichern lässt. Wenn man mit ihr weiterarbeitet, stellt man diesen Zustand wieder her und kann mit allen seinen Programmen und Dokumenten weiterarbeiten, ohne sie erst öffnen zu müssen.

Wichtig ist, die Terminologie und einige Grundprinzipien zu verstehen: Das System, das innerhalb eines anderen ausgeführt wird, ist der Gast (guest). Das zugrunde liegende System wird Wirt oder Gastgeber genannt (englisch host). Die Software, die die virtuelle Maschine bereitstellt, ist der Hypervisor. Der Gast wird normalerweise in einem Fenster ausgeführt. Wenn man mit dem Gast arbeitet, muss man in aller Regel eine bestimmte Taste drücken, um zum Wirt zurückzukehren – denn weil das Gastbetriebssystem nicht «weiss», dass es virtuell ausgeführt wird, gibt es keinen Mechanismus, um den Mauszeiger und die Tastatursteuerung an den Wirt zu übergeben, wenn man mit dem Mauszeiger das Fenster verlässt. Die Taste, die die Steuerung abgibt, wird Host-Taste genannt – die sollte man kennen, wenn man mit dem virtuellen System arbeitet. Sonst muss man das System herunterfahren, um es zu verlassen.

Drag&Drop und gemeinsame Zwischenablage
Die Arbeit mit dem Gast kann durch die Installation der so genannten Gasterweiterungen vereinfacht werden. Das ist ein Programm für die Interaktion zwischen dem Gast-Betriebssystem und der virtuellen Maschine. Die Gast-Erweiterungen erlauben es, für Gast und Wirt die gleiche Zwischenablage zu nutzen und Dateien per Drag&Drop auszutauschen. Dank den Gasterweiterungen lässt sich das Fenster auch auch skalieren, worauf sich das Betriebssystem der neuen Auflösung anpasst. Ohne Gasterweiterungen wird das System normalerweise in einer fixen, unveränderlichen Auflösung betrieben. Ob Gasterweiterungen zur Verfügung stehen, hängt natürlich vom Gast ab. Bei gängigen Systemen wie XP oder Windows 7 sind sie vorhanden, bei älteren Systemen, zum Beispiel Windows 3.1, muss man auf sie verzichten. In diesem Fall ist dann auch der Datenaustausch zwischen Gast und Wirt nicht ganz so einfach. Normalerweise verwendet man dann ein gemeinsames Netzlaufwerk – es kann aber, je nach Konstellation, durchaus knifflig sein, Dateien von A nach B zu bekommen (oder umgekehrt).

Die Gasterweiterungen stellen u.U. auch einen nahtlosen Modus zur Verfügung. Mit dem läuft der Gast nicht in einem Fenster, sondern eben nahtlos. Das heisst, dass man die virtuell ausgeführten Anwendungen als normale Fenster auf seinem Desktop hat. Diese verhalten sich dann nicht anders als die normalen Programme – ausser, dass ihre Benutzeroberfläche den Look des virtuellen Systems hat und sie auch dessen Dateisystem verwenden.

Hypervisoren zur Wahl
Es gibt verschiedene Produkte, um virtuelle Maschinen aufzusetzen. Ein leistungsfähiger Hypervisor ist VMware und auf dem Mac wird gerne Parallels benutzt. Microsoft stellt für Windows VirtualPC zur Verfügung. Mit dieser VM kann man XP auch nahtlos ausführen. Programme, die aus Kompatibilitätsgründen mit neueren Windows-Versionen nicht laufen, werden unter XP ausgeführt, erscheinen, wie oben beschrieben, wie eine normale Anwendung auf dem Desktop. Ich habe den XP-Modus zur Ausführung von älteren Versionen von Clickomania empfohlen. Bei Windows 8.x gibt es den XP-Modus nicht mehr. Stattdessen kann man Hyper-V einsetzen. Der Hypervisor ist standardmässig nicht installiert; man kann ihn aber über die Systemsteuerung und Programme > Programme und Features > Windows-Features aktivieren oder deaktivieren nachrüsten. Weitere Informationen dazu gibt es im Beitrag Ausführen virtueller Computer unter Windows 8.1 mit Hyper‑V für Clients in der Hilfe zu Windows 8.1.

Ich nutze den kostenlosen Hypervisor von Oracle (vormals Sun), VirtualBox. Sie hat den Vorteil, auf Windows und Mac zur Verfügung zu stehen. Ich kann die virtuellen Maschinen somit auf beiden Plattformen nutzen und auch relativ einfach von einem Rechner auf den anderen transferieren. Dazu muss man die Datei, in der die virtuelle Festplatte des Systems steckt, plus die Definitionsdatei transferieren und am richtigen Ort versorgen. Im VirtualBox-Manager gibt es für den VM-Transfer im Datei-Menü sogar eigens die Befehle Appliance exportieren und Appliance importieren. Die grösste Herausforderung ist die Grösse der virtuellen Festplatte. Wenn die 20 oder 50 GB gross ist, dann muss man 20 oder 50 GB herüberschieben.

Schön und gut… aber wie legt man los?
Nun zur eigentlich interessanten Frage, nämlich: Wie man ein Gastsystem aufsetzt. Als erstes richtet man im Hypervisor eine neue Maschine ein. Das ist inzwischen ziemlich simpel. VirtualMachine präsentiert einen Assistenten, der den Namen, Familie und Version entgegennimmt. Wenn man ein nicht allzu exotisches System installiert, dann werden durch die Auswahl des Betriebssystems automatisch die passenden Parameter für die virtuelle Hardware vorgegeben. Diese Vorgaben kann man via Assistent anpassen oder nachträglich auch jederzeit in den Eigenschaften der virtuellen Maschine verändern. Wichtig ist natürlich die Vorgabe für den Arbeitsspeicher. Je mehr RAM man der virtuellen Maschine zuweisen kann, desto flüssiger werden die Anwendungen laufen. Aber weil sich Gast und Gastgeber den Arbeitsspeicher teilen, geht dieser Anteil dann dem Gastgeber ab. Somit ist eines klar: Wer mit virtuellen Maschinen arbeiten möchte, braucht viel RAM. Immerhin – die alten Systeme sind, nach heutigen Massstäben, extrem genügsam. Auf einem modernen System mit 4 GB oder 8 GB kann man die für XP empfohlenen 192 MB problemlos entbehren bzw. auf 512 oder 1024 MB aufstocken.

140214-virtualbox04.jpg
Der Assistent schlägt vor, wie viel Speicher die VM zur Verfügung haben soll.

In einem nächsten Schritt erzeugt man die virtuelle Festplatte. Es gibt verschiedene Formate. VirtualBox verwendet per Standard VDI, versteht sich aber auch auf VHD. Das Virtual-Hard-Disk-Format wird von Microsoft unterstützt. Man es auch bei VirtualPC benutzen. Und es ist möglich, eine VHD-Datei direkt für Windows zu mounten. Dazu verwendet man die Datenträgerverwaltung (Ausführen-Befehl und diskmgmt.msc) und den Befehl Aktion > Virtuelle Festplatte anfügen und gibt die VHD-Datei an. Sie erscheint im Windows-Explorer und kann mit Dateien bestückt werden (zumindest, wenn Windows das verwendete Dateisystem unterstützt). Man kann zwischen einer dynamisch wachsenden Platte oder einer Platte mit fester Grösse wählen. Ich wähle aus Performance-Gründen jeweils letzteres. Es ist übrigens auch möglich, eine reale Partition in eine VHD-Datei zu überführen. Mehr dazu bei den Tipps am Ende dieses Beitrags.

Konfigurationsfeinheiten
Ist die virtuelle Festplatte erstellt bzw. eine vorhandene virtuelle Festplatte zugewiesen, erscheint die neue VM im VirtualBox-Manager. Über Ändern bringt man einen Dialog zum Vorschein, in dem die Konfiguration im Detail gesteuert wird – Änderungen sind aber nur dann möglich, wenn die VM ausgeschaltet ist. Unter System stehen Einstellungen zum Prozessor und zur Hardwarebeschleunigung bereit. Bei Anzeige konfiguriert man die Grösse des Grafikspeichers, aktiviert die Grafikbeschleunigung (3-D und 2-D) und kann sogar mehrere Bildschirme einrichten. Unter Massenspeicher werden virtuelle Controller hinzugefügt (IDE, Sata, Sas und auf Wunsch auch SCSI oder Diskette). Bei Audio gibt man vor, welcher Soundtreiber der VM zur Verfügung stehen soll – die beiden Klassiker AC97 und Soundblaster 16 stehen zur Wahl.

140214-virtualbox02.png
In den Eigenschaften kann man die Merkmale des virtuellen Computers im Detail steuern.

Im Bereich Heimnetzwerk werden die Netzwerkfähigkeiten der VM definiert. Man kann bis zu vier virtuelle Netzwerkkarten einrichten, wobei eine in aller Regel reicht, die per NAT angeschlossen ist. Soll ein Rechner keine Verbindung zum Internet haben, wählt man Host-only – das wäre für XP-VMs eine sichere Wahl. Details dazu finden sich im Blog von Torben Erler. Falls man eine serielle Schnittstelle benötigt, konfiguriert man sie in der gleichnamigen Rubrik. Wenn man physisch keinen entsprechenden Anschluss zur Verfügung hat, kann man auch mit einer Datei verbinden oder eine Pipe zum Wirt einrichten. Wie gut oder schlecht das funktioniert, habe ich allerdings nicht getestet. Was bei USB passiert, dürfte klar sein – und bei Gemeinsame Ordner wird ein Ornder auf dem Wirt bestimmt, der beim Gast in der Netzwerkumgebung erscheint.

Ein kleiner Exkurs zu ISO-Dateien
Die frisch eingerichtete VM ist nicht startfähig, da die neue virtuelle Festplatte leer und somit nicht bootbar ist. Wir benötigen somit ein Installationsmedium. Das kann als physische Setup-CD oder -DVD oder aber als Image-Datei vorliegen. Eine Image-Datei ist das virtuelle Abbild einer CD und DVD. Es liegt in aller Regel als ISO-Datei vor. ISO-Dateien lassen sich per Internet zum Download anbieten oder auf der Festplatte lagern. Man kann eine ISO-Datei mit einem Brennprogramm auf ein Speichermedium verfrachten. Bei neueren Windows-Versionen lässt sich der Brennvorgang aber auch einfach per Rechtsklick einleiten, indem man den Befehl Datenträgerabbild brennen aus dem Kontextmenü auswählt. ISO-Dateien lassen sich auch mounten, d.h. am System zur Verfügung stellen. Bei älteren Windows-Versionen verwendet man dazu die Daemon Tools. Windows 8.1 kann ISO-Dateien aber von Haus aus öffnen: Dazu klickt man die ISO-Datei mit der rechten Maustaste an und wählt Bereitstellen aus dem Kontextmenü.

140214-virtualbox05.jpg
Ein Tipp am Rand: Windows 8.x kann ISO-Dateien ohne Zusatzprogramme im Explorer mounten.

Es geht dann ein Explorer-Fenster mit dem Inhalt des CD-/DVD-Abbilds auf. Und, um diesen Exkurs zu ISO-Dateien abzuschliessen, noch der Hinweis, wie man sie erstellt: Das geht mit CD Burner XP – dem hervorragenden kostenlosen Brennprogramm, das nicht nur unter XP, sondern auch unter den neueren Windows-Versionen läuft und gibt an, dass man ein Medium kopieren oder speichern will.

Zurück zu VirtualBox: Um ein Medium einzubinden, starten Sie die VM und klicken dann im Fenster der VM im Menü auf Geräte > CD/DVD-Laufwerk. Falls das Installationsmedium physisch vorhanden ist, stellen Sie es der VM über Hostlaufwerk [Laufwerkbuchstabe] zur Verfügung. Falls Ihr Installationsmedium als ISO-Datei vorliegt, klicken Sie auf Datei für virtuelles CD-/DVD-Laufwerk auswählen. Im gleichen Menü können Sie ein Medium auch (virtuell) auswerfen. Analog funktioniert die Sache auch mit Diskettenlaufwerken und USB-Speichermedien – die werden ebenfalls über das Geräte-Menü im VM-Fenster zugeordnet. Virtuelle Disketten sind in den Formaten .img, .dsk oder .vfd im Umlauf. Falls Ihr Rechner ein echtes Diskettenlaufwerk aufweist, können Sie natürlich auch das verwenden.

Nun müssen Sie die VM über Maschine > Sende Strg-Alt-Entf neu starten (siehe auch Tipps unten) – und nun sollte, wenn das richtige Installationsmedium virtuell eingelegt wurde, die Installation starten und durchlaufen, wie Sie das von nicht-virtuellen Installationsvorgängen gewohnt sind. Übrigens: Über die virtuelle Maschine lässt sich der Installationsvorgang auch sehr schön per Screenshots dokumentieren – das ist sonst nicht möglich, weil Installationsprogramme keine Screenshot-Funktion zur Verfügung stellen.

Abschliessend einige Tricks zu VirtualBox:

  • Um beim Gast Ctrl + Alt + Delete auszulösen, verwendet man den Befehl Maschine > Sende Strg-Alt-Entf. Er steht in der Menüleiste der VM zur Verfügung.
  • Bildschirmfotos macht man am einfachsten über den Befehl Maschine > Screenshot erstellen.
  • Um die Gasterweiterungen zu installieren, klickt man in der Menüleiste des Gastes auf Geräte > Gasterweiterungen installieren.
  • Eine Übersicht der Konfiguration erhält man via Maschine > Session-Informationen.
  • Die VM kann pausiert werden – das entlastet den Wirt, ohne dass man die VM herunterfahren müsste. Dazu klickt man auf Maschine > Pause. Über den gleichen Befehl wird die Ausführung fortgesetzt.
  • Um die Möglichkeit zu haben, zu einem Systemzustand zurückzukehren, speichert man via Maschine > Sicherungspunkt erstellen den aktuellen Zustand. Die gespeicherten Zustände sind im VirtualBox-Manager bei der Maschine ersichtlich, wenn man oben rechts von Details auf Sicherungspunkte umschaltet.
  • Die Host-Taste wird wie eingangs erwähnt dazu verwendet, um vom Gast zum Wirt zu wechseln. Es gibt auch diverse Tastenkombinationen, die zusammen mit der Hosttaste ausgelöst werden. Die Host-Taste wird im VirtualBox-Manager über Datei > Globale Einstellungen bei Eingabe gesetzt. Standardmässig wird die rechte Ctrl-Taste benutzt. Man kann aber auch eine andere Taste setzen.
  • Es ist möglich, eine physische Partition in eine virtuelle Festplatte zu überführen – so kann sein produktives System quasi eine VM verlagern. Dazu dient das Programm Disk2VHD von Mark Russinovich und Bryce Cogswell, das im Beitrag Virtuell, reell und alles dazwischen besprochen wird.

Wie man mit einer virtuellen Maschine arbeitet führe ich auch hier im Video vor.