Emulator

aus WB Wiki; freien Wissensdatenbank rund ums Thema Computer
Wechseln zu: Navigation, Suche

Ein Emulator ist ein System, mit dem Aufbau und Funktion eines anderen Systems nachgeahmt werden (man nennt dies auch Emulieren, engl. to emulate). Im Idealfall ahmt ein Emulator das betreffende Originalsystem vollständig nach, im Realfall gelingt eine Emulation meist nicht hundertprozentig, sodass bestimmte Eigenschaften des Originals nicht zur Verfügung stehen. Die Emulation ist von der Simulation zu unterscheiden, bei der eine hundertprozentige Nachahmung von vornherein nicht das Ziel ist, sondern die sich einem Originalzustand oder -verhalten über komplizierte Rechenvorgänge annähern will.

Jede Emulation ist Software-basiert. Eine Unterscheidung in Hardware-Emulation und Software-Emulation ist daher nur bedingt sinnvoll.

Wenn überhaupt, dann kann man sagen, dass mit einem Hardware-Emulator ein Gerät nachgeahmt wird, wobei zur Emulation immer Software, machmal auch zusätzlich Hardware eingesetzt wird. Würde man ein Originalgerät rein Hardware-mäßig, also mit einem anderen Gerät ohne Zuhilfenahme von Software, nachahmen, so müsste man von einem Clone sprechen.

Typische Beispiele für Hardware-Emulatoren im obigen Sinn sind:

Windows-Programme, die am Bildschirm einen Palm-Computer präsentieren (mit nachgeahmten Gehäuse) und es gestatten, an diesem emulierten Gerät alle wesentlichen Palm-Funktionen auszuführen. Festplattenemulatoren, die eingesetzt werden, um den Inhalt einer Festplatte als »Beweismittel« in einem Gerichtsverfahren verwenden zu können. Mit einer speziellen Backup-Software wird hier der Inhalt der Originalfestplatte auf eine andere Festplatte oder ein Magnetbandsystem gespiegelt und schreibgeschützt. Alle Untersuchungen, die man an der Originalfestplatte hätte vornehmen wollen, kann man nun an der emulierten Festplatte durchführen. Drucker, die (per Software) das Verhalten eines anderen Druckers so nachahmen, dass der Ausdruck wirkt, als wäre er auf dem entsprechenden Originaldrucker erzeugt worden. Solche Druckeremulatoren werden meist in Form von Treibern vertrieben. Oft sind Druckeremulatoren auch in einem Drucker fest eingebaut. Sie stützen sich dann meist auf ältere Standardgeräte. So sind Laserdrucker i. d. R. fähig, den HP-LaserJet (LaserJet) nachzuahmen, und besitzen für grafische Ausgaben eine Emulation des HPGL. Nadeldrucker emulieren dagegen die Standarddrucker von Epson oder IBM. Werden die Drucker mit diesen Emulatoren angesprochen, sind sie allerdings auch auf die entsprechenden Fähigkeiten eingeschränkt. Neuerungen, etwa Mehrseitendruck auf einer DIN-A4-Seite o. Ä., die von den alten Geräten nicht unterstützt werden, sind dann nicht zugänglich. Eine Besonderheit unter den Druckeremulatoren stellen die PostScript-Emulatoren (PostScript) dar. Sie emulieren genau genommen nicht die Seitenbeschreibungssprache PostScript, sondern den Raster-Image-Prozessor (RIP), der in einem PostScript-Drucker für die korrekte Interpretation der PostScript-Befehle und die Ansteuerung des Druckwerks sorgt. Mit einem PostScript-Emulator (wie z. B. dem Programm GhostScript) kann auch ein Nicht-PostSript-Drucker die von Adobe definierten PostScript-Kommandos verarbeiten und in ein korrektes Druckbild umsetzen. PostScript-Emulatoren sind allerdings viel langsamer als ein RIP.

Das Beispiel der Drucker zeigt deutlich, wie fließend der Übergang von der Hardware- zur Software-Emulation ist. Denn man kann sich fragen, ob hier das Gerät oder nicht eigentlich nur die Druckersprache (also eine Software) emuliert wird.

Reine Software-Emulatoren könnten so definiert werden, dass sie andere Programme nachahmen.

In den weitaus meisten Fällen kann man keine klare Trennung in die Nachahmung von Hardware oder Software vornehmen, sondern kann Emulatoren nur nach ihrem Einsatzgebiet unterscheiden.

Neben den bereits genannten Druckeremulatoren sind besonders wichtig die Betriebssystememulatoren, also Programme, die ein anderes Betriebssystem vollständig nachahmen. Solche Emulatoren müssen unter Umständen auch Hardware-Funktionen emulieren, nämlich dann, wenn das nachzuahmende Betriebssystem für andere Prozessoren geschrieben wurde (Mac OS wurde beispielsweise für Motorola-Prozessoren konzipiert, Windows für Intel-; AMD- oder kompatible Prozessoren). In diesem Sinne handelt sich hier immer auch um Computeremulatoren (s. u.). Ansonsten greifen Betriebssystem-Emulatoren vollständig auf die Hardware des Computers zu, auf dem sie eingesetzt werden. Insgesamt sind sie langsamer als die Originalbetriebsysteme bzw. Originalrechner. Mittlerweile existieren für die meisten Betriebssysteme Emulatoren, sodass die passende Anwendungs-Software auf beliebigen Systemen einsetzbar ist. Oft genutzte Emulatoren sind beispielsweise Windows-Emulatoren für Mac OS und umgekehrt. Ebenfalls beliebt sind Emulatoren, die heute nicht mehr erhältliche ältere Rechnertypen (bzw. deren Betriebssysteme) nachahmen, wie beispielsweise den C64 von Commodore oder die Atari-Rechner. Auch Emulatoren von Spielekonsolen werden gerne benutzt, um die betreffenden Spiele auf einem PC laufen zu lassen. Allerdings müssen die Spiele dann als CD-ROM verfügbar sein, da Computer keine Einsteckmodule aufnehmen können.

Bei Computeremulatoren gibt es bisweilen rechtliche Probleme, besonders dann, wenn der Emulator für viele Anwender interessanter wird als der meist teurere Originalcomputer. Um einen guten Emulator herzustellen, müssen nämlich oft Teile des nachzubauenden Betriebssystems in den Emulator übernommen werden, was urheberrechtlich eine unerlaubte Kopie darstellt – sofern der Programmierer des Emulators keine Lizenz des Hardware-Herstellers erhält. Hat der Emulator dann mehr Erfolg als das Original, wehren sich die Hardware-Produzenten mit Unterlassungsklagen gegen den unerwünschten Konkurrenten. Empfehlenswerte Computeremulatoren für Linux & Windows auf 680xx Prozessor Basis AMIGA WINUAE ATARI ST(E)|TT STEEM

Darüber hinaus sind CD-ROM-Emulatoren erwähnenswert. Sie bilden das Verhalten einer CD-ROM nach. Sie werden u. a. eingesetzt, um Schreibprozesse vor dem Ansprechen der CD-ROM zu überprüfen, sodass die CD-ROM möglichst frei von Fehlern ist. Durch moderne Fehlerkorrekturverfahren verliert diese Aufgabe allerdings zunehmend an Bedeutung. Solche Emulatoren werden aber auch genutzt, um Daten einer CD-ROM auf der Festplatte zu speichern und von dort aus zu verarbeiten. Für den Computer verhält sich dieser Festplattenbereich wie eine extrem schnelle CD-ROM, da Festplatten kürzere Ladezeiten aufweisen als CD-ROMs. Häufig genutzte Daten oder Videosequenzen stehen, beispielsweise in Spielen und Multimedia-Anwendungen, entsprechend schnell zur Verfügung.

Unterschied zwischen Emulatoren und Virtualizern

Ein Virtualizer ist einem Emulator sehr ähnlich. Ein Emulator emuliert (also bildet nach) sämtliche Hardware. Dieses Verfahren ist sehr aufwendig.

Virtualizer versuchen bestimmten Code nativ auf dem Hostsystem auszuführen. Der virtuelle CPU bei dem Virtualizer VMware ist zum Beispiel die selbe wie das Hostsystem hat. Der Virtualizer kümmert sich darum das die Anweisungen die das virtualisierte Betriebssystem in der virtuellen Maschine umgesetzt werden und nicht auf dem Hostsystem. Ausgeführt werden die Befehle jedoch auf dem Hostsystem.

Ein Virtualizer ist meistens sehr viel schneller als ein Emulator.

Die Einsatzgebiete sind verschieden. Für Programmierung nahe der Hardware ist ein Emulator besser oder auch um alte Betriebssystem wie DOS auszuführen.

Ältere Betriebssysteme laufen in einem Virtualizer nur mäßig gut. Meistens kann man zum Beispiel keine DOS Spiele in Virtualizern ausführen, dafür sind Emulatoren besser.

Neuere Betriebssysteme wie Windows XP laufen allerdings in Virtualizern besser, also schneller und mit kaum Einschränkungen.

Virtualizer und Emulatoren im Überblick

VMware Player

Virtualizer, ist kostenlos und das Einstiegsprodukt. Relativ langsame Grafikausgabe.

VMware Server

Virtualizer, kostenlos und mehr Funktionen als VMware Player. Auch relativ langsame Grafikausgabe.

VMware Workstation

Ist kostenpflicht, performant und hat eine relativ schnelle Grafikausgabe. Sehr viele erweiterte Funktionen, bestens geeignet für Softwaretestes.

VirtualBox

Virtualizer, kostenlos und teilweise Open Source. Verfügt über ein nette Funktion genannt Seamless Windows (Die Taskleiste vom virtuellen Windows befindet sich über der Taskleiste des realen Windows. Kein virtuelles Betriebssystem mehr im Fenster.)

Grafikausgabe ist moderrat. Gut geeignet für Tests und Anfänger.

QEMU mit Beschleuniger Modul

Virtualizer, Open Source, portable Version] verfügbar. Ohne Beschleuniger Modul ist es ein Emulator.

DOSBox

Emulator, Open Source, bestens geeignet für klassische DOS Spiele (da alte Soundkarten emuliert werden), portable Version verfügbar.

Xen

Virtualizer, verschiedene Versionen von kostenlos bis teuer, sehr schnell, Grafikausgabe nur über VNC oder in dem man eine extra reale Grafikkarte zuteilt, eher geeignet für Virtualisierung von Servern, komplizierte Bedienung.

Links