Es kann gute Gründe dafür geben, ein oder mehrere Linux-Systeme unter Windows zu emulieren. VMware Workstation 3.0 und der Konkurrent Connectix Virtual PC müssen beweisen, dass sie leistungsfähige künstliche Welten bereitstellen können.
Windows als Host-Betriebssystem und Linux im PC-Emulator betreiben ist eine Überlegung wert: zum Beispiel für Entwickler von Middleware in heterogenen Umgebungen, die eine virtuelle Plattform ohne Dualboot als komfortablen Workaround zum Testen und beim Cross-Developing betrachten.
Auch für Entwickler von Web-Applikationen ist die Lösung interessant. Wer mit Programmen wie Dreamweaver arbeitet, die es für Linux leider nicht gibt, kann so trotzdem Zugriff auf eine LAMP-Plattform (Linux, Apache, MySQL, PHP) erhalten. Natürlich gelten die traditionellen Argumente für den Einsatz eines virtuellen PCs noch immer: Wer parallel mit mehreren Betriebssystemen arbeitet, müsste sonst, etwa um ein neues Programm zu testen, das jeweilige System wechselseitig neu booten.
Für die Zukunft deutet sich an, dass solche Programme nicht mehr nur als Hilfsmittel für die Ausführung nicht-nativer Applikationen einzuordnen sind, sondern als intelligente Konzepte zur vollständigen Virtualisierung von Hardwareplattformen. Sie sind ein Instrument für Systemadministratoren, eine heterogene IT-Serverlandschaft transparent zu konsolidieren und – unabhängig von der tatsächlichen verwendeten Hardware – den Clients im Netz stets genau jene Dienste anzubieten, die gerade gefragt sind.
Dieser Beitrag nimmt sich zweier Produkte an, die unter einem Windows-System beliebige Linux-Distributionen booten können. Dabei stellt sich vor allem die Frage, ob die Performance einer solchen Lösung im Vergleich zu einer nativen Linux-Installation genügend Raum für plausible Einsatzszenarien lässt und was eine aktuelle Linux-Distribution mit den virtuellen Hardwarekomponenten anfängt.
Besondere Aufmerksamkeit haben wir zudem den Netzwerkmodi von VMware und Connectix gewidmet. Bisher war der Network-Layer zwischen Hostsystem und Gast bei den ersten VMware-Versionen noch zwingende Voraussetzung, um überhaupt einen Datenaustausch zwischen den Welten zu bewerkstelligen. Heute sind die multifunktionalen Netzwerkbetriebsarten von VMware und Connectix die Basis für den Umgang mit Web-Applikationen schlechthin. Der NAT-Modus bietet zudem dem Gastsystem die Möglichkeit, auf Dial-up- und Netzwerkverbindungen und elementare Dienste wie DHCP oder DNS des Hostsystems zuzugreifen.
VMware Workstation 3.0
VMware ist für Linux-Interessierte sicher der bekannteste PC-(Hardware-)Emulator. Für die neueste Version 3.0 der Workstation-Variante[1] eignet sich auch Windows XP als Host- und als Gastsystem. Als Gäste kommen auch alle gängigen Linux-Versionen und Windows, Free-, Net- und OpenBSD- sowie MS-DOS und OS/2 infrage.
Am Prinzip von VMware hat sich wenig geändert: Das Programm erzeugt virtuelle PCs, die wahlweise eine virtuelle Festplatte besitzen oder im Raw-Modus auf eine existente physikalische Festplattenpartition des jeweiligen Gastbetriebssystems zugreifen. Theoretisch kann der Anwender beliebig viele Emulationen auf dem Hostcomputer parallel ausführen – praktisch sind es vier. Andere Grenzen setzt nur die Leistungsfähigkeit des PCs, da sich alle virtuellen PCs den physikalischen Arbeitsspeicher und die CPU teilen müssen.
Die Hardware, die das Gastsystem zu sehen bekommt, simuliert (emuliert) VMware selbstständig. Einstellen lassen sich dabei die Größen der virtuellen Festplatte und des Arbeitsspeichers sowie Netzwerkkarten, COM- und LPT-Ports. Hinzu gekommen sind USB- und SCSI-Geräte. VMware vermittelt zwischen der tatsächlichen und der emulierten Hardware. Um hoch auflösende Grafikmodi zu erreichen ist die Installation einiger Zusatztools im Gastsystem nötig. Einen gegenüber dem Fenstermodus flotteren Vollbildmodus gibt es auch.
Die Installation eines Gastbetriebssystems erfolgt innerhalb des VMware-Fensters ebenso leicht oder schwer, wie man es von einem normalen PC gewöhnt ist. Noch leichter wird’s, wenn man von VMware vorgefertigte Guest Operation Kits erwirbt und einspielt. Bislang ist für die Workstation 3.0 allerdings nur Windows 2000 Professional erhältlich. Beim Test überzeugt hat auch das ausführliche Handbuch.
Die Netzwerkfähigkeiten von VMware
Sowohl die Windows- als auch die Linux-Version von VMware Workstation 3.0 kennt drei verschiedene Netzwerkmodi: Bridged Network, NAT (Network Address Translation) und Host Only.
Beim Bridged Network konfiguriert man den virtuellen Rechner wie einen ganz normalen Rechner im Netzwerk, indem er eine gültige IP-Nummer und Subnetzmaske erhält. Die Verbindung erfolgt über einen virtuellen Switch. Im Netzwerk ist der virtuelle Client nicht von einem echten Netzwerk-Client zu unterscheiden. Optimal geeignet ist die »Bridged Network«-Option, falls auf dem virtuellen Client echte Netzwerkdienste zum Einsatz kommen und der Rechner mit anderen Clients kommunizieren soll.
Die zweite Netzwerk-Option von VMware ist ideal, um die Internet-Anbindung des virtuellen Clients über den Host herzustellen. Dazu wird im NAT-Modus über einen virtuellen Switch eine Verbindung zum Host-PC hergestellt. Ähnlich dem herkömmlichen Masqerading stülpt der Switch seine eigene IP-Nummer auf die Anforderungen des virtuellen Clients und benutzt seine Internet-Connection wie DSL, ISDN oder Modem. Die letzte Netzwerk-Option »Host Only« stellt lediglich über einen Switch eine Kommunikationsmöglichkeit zwischen Host und virtuellem Client her.
Connectix Virtual PC
Wie VMware ist auch Connectix Virtual PC[2] ein PC-Emulator. Ursprünglich für den Mac entwickelt ist er mittlerweile auch in einer Windows-Version (unter anderem für ME und XP) zu haben. Eine Linux-Version (für den Host) von Virtual PC ist leider nicht mal geplant.
Die Handhabung ähnelt dabei weitestgehend der von VMware. Damit kann zum Beispiel ein Linux-System als virtueller Gast installiert und genutzt werden. Die Zahl anderer möglicher Gastbetriebssysteme ist groß: Windows-Versionen, DOS und OS/2. Erfolgsberichte über den Einsatz anderer Betriebssysteme unter Virtual PC gibt es auch.
Die Anforderungen von Virtual PC sind allerdings noch etwas höher als die von VMware. Empfohlen wird ein Prozessor mit mindestens 500 MHz und – je nach Gastbetriebssystem – viel Arbeitsspeicher. Mit 256 MByte lässt sich ein Gastsystem betreiben, für mehrere Gäste gleichzeitig muss man mehr investieren. Auch für Connectix gibt es Zusatztools, die den Einsatz der Gastsysteme verbessern. Beispielsweise ist es damit möglich, Dateien per Drag & Drop zwischen Gast und Host auszutauschen und Verzeichnisse des Hosts als Volumes vom Gast anzusprechen. Andere Ad-ons stellen Joystick-Unterstützung, optimierte Grafiktreiber und nationale Tastatur-Layouts zur Verfügung. Im Gegensatz zu VMware sind die Virtual-PC-Tools nur für Gastbetriebssysteme aus dem Hause Microsoft zu haben.
Virtual PC im Netzwerk
Auch Virtual PC verschafft im »Eigenschaften«-Menü seinem Benutzer eine Auswahl mehrerer Netzwerkmodi. Die erste Option »Freigegebenes Netzwerk« ermöglicht es dem virtuellen Gast, transparent auf die Internet-Verbindung des Hostrechners zuzugreifen. Dabei nutzt der virtuelle Gast die dynamisch oder statisch zugewiesene IP-Nummer des Hostrechners. Bei der zweiten Netzwerkfunktion »Virtuelle Umschaltung« sieht der virtuelle Rechner ein normales Netz, das dem Gast eine gültige IP-Nummer zuweist – wahlweise auch per DHCP. Über diesem Weg kommt der Gast dann auch ans Internet.
Image-Dateien und Suspend-Modus
Mit Hilfe des »Suspend Mode« kann Virtual PC den aktuelle Zustand des Gastsystems einfrieren und später wieder sofort herstellen. VMware kennt diese Funktion ebenso. Ein Herauf- und Herunterfahren des emulierten PCs ist also nicht immer erforderlich.
Genau wie bei VMware lassen sich auch bei Virtual PC vorgefertigte Betriebssystem-Images einspielen, um die Installation neuer Gastbetriebssysteme besonders einfach zu gestalten. Zudem ist auf diesem Weg auch das Einspielen selbst angefertigter Images möglich. Ein Vorteil von Virtual PC: Es kann seine virtuellen Partitionen dynamisch in ihrer Größe anpassen, während man VMware eine statische Vorgabe machen muss.
Virtuelle Hardware- Unterstützung
Sowohl VMware als auch Virtual PC gaukeln dem Gastbetriebssystem eine Reihe virtueller Hardwarekomponenten vor. Neben den Standardkomponenten CPU, Motherboard, Speicher und Festplatte ist zunächst die Emulation einer virtuellen Grafikkarte erwähnenswert. Deren Leistung hängt vom Grafikmodus des Host-Betriebssystems ab. Im besten Falle sind es sowohl bei VMware als auch beim Virtual PC hoch auflösende Grafikmodi mit hoher Farbtiefe.
Darüber hinaus ermöglichen beide virtuellen PCs die Emulation eines Arbeitsspeichers, dessen Größe frei gewählt werden kann – solange sie kleiner ist als der physikalische Arbeitsspeicher des Host-PCs. Virtual PC emuliert als PCI-Grafikkarte eine S3-Trio 32/64. Bei VMware Workstation 3.0 wird unter Linux als Gastbetriebssystem ein spezieller VMware-Grafiktreiber für XFree 4.0 genutzt. Daneben unterstützen beide Programme virtuelle Netzwerkkarten, Diskettenlaufwerke sowie CD-ROMs.
Serielle und parallele Ports mit Geräten, die sich eigentlich an den jeweiligen Original-Ports des Hosts befinden, werden emuliert. USB-Geräte und eine Soundkarte ergänzen das System: Virtual PC emuliert eine Soundblaster 16 im 44-kHz-Modus. Die Emulation generischer SCSI-Geräte ist nur unter VMware 3.0 möglich.
Dafür kann Virtual PC jedoch mit Joystick-Unterstützung aufwarten. Sie steht allerdings nur bei Windows und erst dann zur Verfügung, wenn die entsprechenden Ad-ons installiert wurden.
Geschwindigkeit – die wichtigste Eigenschaft
Verbindliche Aussagen über die Performance emulierter PCs im Allgemeinen und über VMware und Connectix im Besonderen sind nur unter Beachtung zahlreicher Randbedingungen erlaubt: Einmal hängt die Performance von der Ressourcennutzung und der nativen Geschwindigkeit sowohl von Gast- als auch von Host-Betriebssystem ab. Zum anderen gibt es interne und externe Faktoren, die Messergebnisse bei Benchmark-Versuchen verfälschen können. Wie schwer es bereits ist, das richtige Benchmark-Programm zum Testen eines virtuellen PCs ausfindig zu machen, zeigt sich an dem Umstand, dass selbst simple Zeitmessungen in virtuellen PCs problematisch sind, und die sind ja Grundlage jedes Benchmarks.
Das nächste Problem ist, dass mindestens das Hostsystem – eventuell auch der Emulator – eine ganze Reihe von Operationen des virtuellen PCs cacht. Trotz der Wahl eines geeigneten und vergleichbaren Runlevels und weitestgehend ähnlicher Konfigurationseinstellungen in den Linux-Gastsystemen war so festzustellen, dass die Kernelkompilierung auf einem virtuellen PC schneller abgearbeitet wird als bei einer nativen Linux-Installation.
Um dennoch einen Überblick über die Performance der verschiedenen Virtual-PC-Konzepte zu erhalten, haben wir einige beispielhafte Benchmarks mit Hdbench[7] kreiert. Zum Verdeutlichen der gemessenen Größenordnungen wurden noch ein natives Linux-System und ein virtuelles Linux unter VMware für Linux gemessen. Die Ergebnisse sind im Balkendiagramm zu sehen.
Der Benchmark der Linux-Version von VMware Workstation erfolgte dabei auf einem Athlon (800 MHz) mit 512 MByte RAM und einer 20-GByte-Festplatte. Der Test der Windows-Versionen von Virtual PC und VMware Workstation 3.0 erfolgte aus technischen Gründen auf einem Duron 750 mit sonst gleicher Konfiguration. Als Gastbetriebssystem kam dabei jeweils SuSE 7.3 in der Standardkonfiguration zum Einsatz.
Der Benchmark lief in einem speziellen, selbst entworfenen Runlevel, in dem alle Netzwerkoperationen, alle Cronjobs und nicht benötigten Programme deaktiviert waren. Die verschiedenen Hardwareparameter für die Gastbetriebssysteme setzten wir dabei bei allen Emulatoren auf vergleichbare Werte – zum Beispiel auf 128 MByte RAM.
Mindestens die Hälfte ist weg – bei Grafik mehr
Anhand der gemessenen Werte ist festzustellen, dass ein natives Linux-Betriebssystem etwa doppelt so schnell ist wie ein unter VMware für Linux installiertes Linux-Gastbetriebssystem. Auf dem Athlon 800 entsprach die Performance des Gastsystems etwa der eines K6/2 400. Ähnliche Ergebnisse zeigten sich auch bei den Performance-Werten für die Windows-Versionen der beiden PC-Emulatoren.
Es fällt zudem auf, dass die Ergebnisse von Virtual PC deutlich hinter denen von VMware Workstation zurückbleiben, wenn Linux als Gastbetriebssystem zum Einsatz kommt. Besonders deutlich macht sich der Performance-Verlust bei der Grafikausgabe bemerkbar. Hier erreichte der virtuelle PC nur einen Bruchteil der auf dem echten Rechner zur Verfügung stehenden 2D-Funktionen und Geschwindigkeiten.
Für den Einsatz von 3D-Anwendungen und Spielen sind die virtuellen PCs also kaum zu gebrauchen. Auch zum Entwickeln von 3D-Applikationen auf OpenGL-Basis taugt eine emulierte Hardwareplattform definitiv nicht.
Die Performance im Disk-I/O hängt vom Emulations-Modul für das EIDE-Device ab. Bei einer virtuellen Disk liegt das emulierte EIDE-Device im Dateisystem des Hosts und profitiert von dessen Caching. Bei der Verwendung von Raw-Devices sieht das Ganze wieder anders aus. Sofern keine Streaming-Anwendungen oder andere Applikationen zum Einsatz kommen, die auf hoch performantes Disk-I/O angewiesen sind, lässt sich in einer Emulation also gut arbeiten.
Allgemein lässt sich sagen, dass die meisten Standardprogramme bei einem ausreichend schnellen Prozessor im Hostsystem und einer großzügigen Arbeitsspeicherausstattung – die sich auf die Performance des Gast-Dateisystems im virtuellen Image und auf das Taskswitching am Hostsystem auswirkt – sehr brauchbare Ergebnisse liefern.
Fazit
In ihrer Funktionalität und Stabilität unterscheiden sich die beiden Produkte kaum voneinander. Die Performance des Gastes (und auch die freien Ressourcen des Hosts) sind durch den Einsatz beider PC-Emulatoren natürlich nachhaltig beeinflusst – am deutlichsten bei Virtual PC. Für Standardapplikationen reicht es aber allemal. Ebenfalls stressfrei praktizieren lässt sich das Entwickeln und Testen von plattform(un)abhängigen Programmen, etwa im Web-Bereich. Problematisch sind Grafikapplikationen.
Obwohl sich der Preis für die Workstation-Version von VMware mit knapp 400 Euro gewaschen hat, ist das Produkt sehr zu empfehlen. Für den privaten Bereich hält der Hersteller seine Version VMware Express parat, die nur Windows 98 als Gastsystem kennt.
Mit knapp 200 Euro merklich preiswerter fällt der Erwerb von Connectix Virtual PC aus. Allerdings ist von Virtual PC keine Linux-Version erhältlich. (jk)
Windows XP im virtuellen PC |
|
Der Betrieb von Windows XP unter einem anderen Betriebssystem mit VMware Workstation 3.0 und Connectix Virtual PC ist eigentlich kein Problem. Einen Haken hat der Einsatz der beiden PC-Emulatoren mit Windows XP als Gastbetriebssystem aber bei der XP-Aktivierung. Dabei werden Hardware-Informationen des PCs abgefragt – in diesem Fall die emulierten. Ändert man die Parameter des virtuellen PCs, kann es passieren, dass XP eine erneute Aktivierung verlangt. Es empfiehlt sich, den virtuellen PC vollständig zu konfigurieren, bevor man mit der Aktivierung von Windows XP beginnt. Es bleibt zu hoffen, dass dieses Problem zumindest in den geplanten vorinstallierten Pre-Packages von Windows XP für VMware und Virtual PC beseitigt wird. |
Alternative Emulatoren |
|
Wem Produkte wie VMware und Virtual PC nicht behagen, der findet eine Menge anderer Emulationssoftware. Wer unter Linux Windows-Programme nutzen muss, möge sich Win4Lin[3] ansehen, das unter Linux direkt Windows-Applikationen startet. Macintosh-Programme auf einer x86-Plattform kann das Programm Basilisk II[4] ausführen, und zwar unter Windows, Linux und BeOS. Auf einer virtuellen Festplatte wird dafür MacOS 8.1 oder niedriger installiert. Zudem ist Basilisk Open Source und kostenlos. Cygwin Ein Emulator der besonderen Art ist Cygwin[5], eine Sammlung von Bibliotheken, die es unter Windows ermöglichen, Unix-Applikationen auszuführen. Das funktioniert sogar mit X11-Applikation, wenn das entsprechende XFree-Cygwin-Paket unter Windows installiert ist [6]. Cygwin besteht aus einer DL-Bibliothek für Windows, die als eigener Layer alle Unix-Funktionsaufrufe abfängt, sowie einer Toolsammlung, die für das Unix-Look & Feel, beispielsweise über spezielle Shells, zuständig ist. Nachteil von Cygwin ist, dass man nicht beliebige Linux-Programme einsetzen kann, sondern nur speziell für Cygwin angepasste Pakete. Gibt es solche nicht, bleibt nichts anderes übrig, als das Programm selbst für Cygwin zu kompilieren. |
Infos |
|
[1] VMware Workstation 3.0: [http://www.vmware.com] [2] Connectix Virtual PC: [http://www.connectix.com] [3] Win4Lin: [http://www.netraverse.com] [4] Basilisk II: [http://www.uni-mainz.de/~bauec002/B2Main.html] [5] Cygwin: [http://cygwin.com] [6] Cygwin XFree: [http://cygwin.com/xfree] [7] Hdbech: [http://www.enjoy.ne.jp/~gm/program/hdbench] |









