Die Puppe in der Puppe
Virtualisierung und Emulation
Server-Virtualisierung
Anbieter von Internetservern sind besonders an Virtualisierungslösungen interessiert. Denn erst diese erlauben das so genannte Shared-Hosting, bei dem sich mehrere Kunden einen realen Internetserver teilen. Jeder dieser Kunden glaubt mit einigem Recht, er arbeitete auf seinem eigenen Server. Anbieter wiederum können mit dieser Technik Anfragen aus dem Internet besser auf ihre Server verteilen und – durch gemeinsame Hardwarenutzung – zudem die Betriebskosten senken.
Die dabei eingesetzten Virtualisierungslösungen arbeiten mit den bisher vorgestellten Konzepten, bieten in der Regel aber zusätzlich auf den Serverbetrieb zugeschnittene Leistungen, wie die angesprochene Lastverteilung oder spezielle Administrationsoberflächen. Beispiele für solche Produkte sind der VServer oder das bereits angesprochene OpenVZ. Beide Systeme setzen einen modifizierten Linux-Kernel ein, der dann die einzelnen Virtual Environments startet und kontrolliert.
Lizenzen
Wer ein kommerzielles Betriebssystem in einer virtuellen Maschine betreiben möchte, braucht eine gültige Lizenz. Alle Microsoft-Systeme etwa muss man für den Gebrauch in einer virtuellen Umgebung extra kaufen. Die genauen Bestimmungen für den Einsatz findet man üblicherweise in den Lizenzbedingungen der Hersteller.
Ein weiteres Problem – insbesondere bei älteren Computern oder Betriebssystemen – stellt die rechtlich geschützte und teilweise sogar patentierte Firmware dar. So benötigt man beispielsweise für einen komplett emulierten PC ein passendes BIOS. Ältere Apple-Computer haben auf den fest eingebauten Chips sogar Teile des Betriebssystems verstaut – eine Praxis, die zur Zeit der Heimcomputer äußerst beliebt war. Im Fall der PCs existieren glücklicherweise verschiedene, freie BIOS-Alternativen ([17]). Die meisten Virtualisierungsprodukte bringen diese Alternativen zudem gleich mit. Bei allen anderen Computern bleibt nur, die entsprechende Firmware mit einem speziellen Programm auszulesen.
Fazit
Sieht man einmal von den verwirrenden und häufig mehrdeutigen Modebegriffen ab, öffnet die Virtualisierung interessante Möglichkeiten: Verschiedene Betriebssysteme lassen sich gleichzeitig betreiben, kritische Anwendungen einsperren und neue Konfigurationen gefahrlos ausprobieren.
Für den privaten Desktop-PC dürften die Emulatoren von größtem Interesse sein: Dank spezieller Beschleunigungsmodule, die die Befehle direkt an den Prozessor durchreichen, lässt sich auch ein modernes Windows-System einigermaßen flott bedienen. Andere Emulatoren holen längst vergangene Legenden wie den Commodore 64 wieder ins Leben zurück.
Der Erfolg der derzeit modernen Paravirtualisierung steht und fällt maßgeblich mit der Unterstützung durch die Betriebssysteme. Hier kocht aber jeder Hypervisor-Hersteller sein eigenes Süppchen. So wird speziell Microsoft sein Windows – wenn überhaupt – ausschließlich für eigene Hypervisoren öffnen.
Auf großen Servern zuhause und in der Praxis etabliert sind die Technologien von OpenVZ und VServer. Für private Desktop-Rechner eignen sie sich weniger; schließlich fährt kaum jemand einen Heimserver mit mehreren Internetauftritten, nimmt zusätzlich in Kauf, dass nur ein Betriebssystem läuft und ist zudem bereit, sich in die etwas komplexe Konfiguration einzuarbeiten. Ein schneller Griff zu Qemu und Co. erledigt in der Regel das gleiche mit deutlich weniger Handgriffen.
Glossar
Emulator
Aus dem Lateinischen von "aemulari" (wetteifern, nacheifern) abgeleitete Bezeichnung für Programme, die eine andere Anwendung nachahmen.
Virtuelle Maschine
Im Unterschied zu einem normalen Computer existiert eine virtuelle Maschine nur als Anwendung in einem Host-Betriebssystem.
Snapshot
In einem Schnappschuss speichert eine Emulation temporäre Betriebszustände einer virtuellen Maschine, etwa bestimmte Hardware-Einstellungen oder eine gewissen Ausstattung mit Programmen.
Virtualisierung
Oberbegriff für Verfahren, reale Computer-Ressourcen vor einer Anwendung oder dem Betriebssystem zu verstecken. Auf diese Weise versucht man einem Programm vorzugaukeln, dass es die Hardware ganz für sich alleine besitzt.
[1] IBM System/360: http://de.wikipedia.org/wiki/System/360
[2] Qemu und KQemu: http://fabrice.bellard.free.fr/QEMU
[3] PC-Emulator Bochs: http://bochs.sourceforge.net
[4] Amiga-Emulator UAE: http://uae.coresystems.de
[5] Atari-ST-Emulator StonX: http://stonx.sourceforge.net
[6] Commodore-64-Emulator VICE: http://www.viceteam.org
[7] VMware: http://www.vmware.com/de
[8] Xen: http://www.cl.cam.ac.uk/research/srg/netos/xen
[9] KVM: http://kvm.qumranet.com/kvmwiki
[10] VServer: http://linux-vserver.org/Welcome_to_Linux-VServer.org
[11] OpenVZ: http://openvz.org
[12] Programmiersprache Java: http://www.java.com/de
[13] ScummVM: http://www.scummvm.org
[14] Intel Virtualization Technology: http://www.intel.com/technology/virtualization
[15] AMD-Virtualization: http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_14287,00.html
[16] OpenFirmware http://www.openbios.info
[17] Freies PC-BIOS: http://www.linuxbios.org/Welcome_to_LinuxBIOS



