Emulator

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Freier Emulator Stella Linux. Plattformübergreifender Emulator der Atari-2600-Konsole
Emulator Hercules. Emulation von Großrechnern

Als Emulator (von lat. aemulare, „nachahmen“) wird in der Computertechnik ein System bezeichnet, das ein anderes in bestimmten Teilaspekten nachbildet.

Das nachgebildete System erhält die gleichen Daten, führt vergleichbare Programme aus und erzielt die möglichst gleichen Ergebnisse in Bezug auf bestimmte Fragestellungen wie das zu emulierende System.

Software-Emulatoren sind Programme, die einen Computer nachbilden und es so ermöglichen, Software für diesen Computer auf einem Computer mit einer anderen Architektur zu verwenden. So können z. B. Spiele für ältere Spielekonsolen auf einem PC oder einer neueren Spielekonsole ablaufen. Ein weiteres Beispiel: Ein Softwareentwickler kann bei der Entwicklung eines Programmes für ein Gerät (z. B. ein Handy), das eine andere Architektur als der Entwicklungs-Rechner hat, dieses im Emulator testen und korrigieren, ohne es jedes Mal auf das Gerät kopieren zu müssen.

Ein Hardware-Emulator ist ein elektronisches Gerät, das ein System wie einen Drucker oder einen Prozessor (CPU) funktionell, elektrisch oder mechanisch (Gehäuse und Pins) nachbilden kann. Die Verbindung zur Prozessorbaugruppe wird mittels Sockel und passendem Stecker erstellt. Er wird auch als In-Circuit-Emulator (ICE) bezeichnet.

Ein Terminalemulator ist eine Software, welche die Funktion eines Terminal (Dateneingabe/Bildschirmausgabe) nachbildet, so dass man z. B. von einem PC auf eine entsprechende Anwendung zugreifen kann.

Die Geschichte der Emulation[Bearbeiten]

Im Jahre 1962 war zum ersten Mal von einem (Prozessor-)Emulator zu hören. IBM arrangierte zahlreiche Computertests in La Grande (Frankreich), um die Kompatibilität ihrer neuen Produkte zu den Vorgängern zu prüfen. Dazu nutzte man eine Kombination aus Hard- und Software, die vom IBM-Ingenieur Larry Moss als Emulator bezeichnet wurde. 1965 schließlich wurde die System/360-Linie offiziell veröffentlicht. Sie umfasste auch den ersten Emulator – der „7070 Emulator“ erlaubt die Verwendung von Programmen für das ältere Modell IBM 7070.

1985 erschien der Atari-ST mit einer für den Heimcomputermarkt neuen 68000-CPU und dem Betriebssystem Atari-TOS. Anfänglich gab es für diese Hardware noch wenig Anwendungs-Software. Der Übergang von der damals weit verbreiteten 8-Bit-Software unter CP/M zur neuen 16-Bit-Welt wurde von Atari durch den kostenlos mitgelieferten CPMZ80-Emulator erleichtert. Dieser reine Softwareemulator erzeugte auf der 68000-Hardware eine virtuelle, vollständige Z80-CPU sowie ein mit CP/M 2.2 kompatibles Betriebssystem. Dadurch war ein problemloser Betrieb populärer wie vorhandener Software möglich.

MegaDrive war 1994 der erste Videospielemulator, der der Öffentlichkeit zugänglich gemacht wurde. Wie der Name vermuten lässt, ahmt er SEGAs gleichnamiges Produkt nach, unterstützt dabei allerdings nur ein Spiel: Sonic the Hedgehog, und auch das nicht besonders gut. Die Arbeit an MegaDrive wurde allerdings nicht fortgesetzt, da der Programmierer den Quellcode verloren hatte. Im selben Jahr wurde von Chris George mit der ersten (nicht funktionierenden) Version von VSMC der erste Super-Nintendo-Emulator entwickelt.

Druckeremulation[Bearbeiten]

Die heute wohl in der EDV häufigsten Emulationen sind Drucker- oder Plotter-emulationen. Fast alle hochwertigen Laserdrucker emulieren zur Zeit einen Hewlett-Packard-LaserJet Drucker (HP-PCL), aber auch Rasterdrucker werden emuliert. Häufig sind auch nach wie vor die Emulationen Epson ESC/P, IBM-Proprinter und Andere.

Terminalemulation[Bearbeiten]

Eine klassische Terminalemulation erlaubt die Interaktion mit textorientierten Programmen, die auf einem entfernten Rechner laufen, über eine externe Schnittstelle, meist eine serielle Leitung oder eine Modemverbindung. Heute hingegen sind Netzwerkverbindungen via TCP/IP die Regel. Terminalemulationen wurden programmiert, um das Verhalten eines „dummen“ Terminals, also eines einfachen Datensicht- und Eingabegerätes, nachzuahmen. Neben den textorientierten Terminalemulationen werden heute vermehrt Lösungen zur Remotebearbeitung mit graphischer Oberfläche (Citrix, MS-Remotedesktop, X-Terminal) eingesetzt. Durch diese graphischen Emulationen können beispielsweise Unix-Benutzer direkt von ihrem Arbeitsplatz aus Programme benutzen, die nur für Windows verfügbar sind (und umgekehrt). Auch die Administration erleichtert sich, da die wesentlichen Wartungs- und Installationsarbeiten nur an einem System, dem Terminal-Server, erfolgen.

Virtuelle Maschine[Bearbeiten]

Hauptartikel: Virtuelle Maschine

Eine virtuelle Maschine (kurz: VM) wird oft fälschlicherweise ebenfalls als Emulator bezeichnet. Diese Spezialsoftware erzeugt auf einem Gastgeberrechner eine Laufzeitumgebung, die eigentliche virtuelle Maschine, die die Hardwareschnittstellen des Rechners (oder eines ähnlichen Rechners) abbildet. Ein Gastbetriebssystem läuft – wie üblich – auf der CPU des Gastgeberrechners, jedoch werden alle Zugriffe auf die Ein- und Ausgabehardware auf Softwareschnittstellen des Gastgeberbetriebssystems umgeleitet. Dadurch ist es möglich, unter dem vorhandenen Betriebssystem ein weiteres in einem Fenster auszuführen. Bei professionellen Anwendungen laufen unter einem Hypervisor, einer speziellen Form der VM, gar parallel mehrere Gastbetriebssysteme auf nur einer vorhandenen Hardware; faktisch wird dabei also ein einzelner Rechner in mehrere unterteilt.

Beispiele:

Kompatibilitätsschicht[Bearbeiten]

Streng genommen ebenfalls vom Emulator zu unterscheiden ist die „Kompatibilitätsschicht“, die nicht versucht, ein ganzes System zu emulieren, sondern sich auf die Emulation von Softwareschnittstellen beschränkt. Ein bekanntes Beispiel ist Wine, das unter Unix-artigen Betriebssystemen eine Vielzahl der Softwareschnittstellen von Windows bereitstellt, so dass etliche Windows-Programme unter dem eigentlich fremden Betriebssystem lauffähig werden.

Siehe auch: Laufzeitumgebung und Programmierschnittstelle

Anwendungsbereiche[Bearbeiten]

Emulatoren werden für verschiedene Zwecke eingesetzt:

  • Investitionsschutz: Software, die für ältere Systeme entwickelt worden ist, kann auf modernen Systemen weiter laufen.
    • Beispiel: auf einem Linux-/Apple-/Amiga-Rechner wird mittels Bochs, QEMU, VMware bzw. Windows Virtual PC ein PC emuliert, auf dem Windows installiert werden kann. Die meiste bisher gekaufte Windows-Software kann weiter eingesetzt werden.
    • Das Open-Source-Projekt Wine dagegen emuliert nur die Schnittstellen des Windows-Betriebssystems zur Anwendung.
    • Beispiel Server von Digital Equipment Corporation: Wegen der hohen Anschaffungskosten sind PDP-11-, VAX- AlphaServer von DEC inklusive des Betriebssystems OpenVMS oft schon seit über zwanzig Jahren im Einsatz. Bei Emulatoren wie Charon kann das Betriebssystem und die dazugehörigen Applikationen unverändert beibehalten werden, während die Emulatoren selbst auf Standardservern installiert werden.
  • Softwareentwicklung:
    • Es ist möglich, Software für andere Systeme zu entwickeln und zu testen.
      • Beispiel: Programme, die für Palm OS auf einem PC entwickelt werden, können mit einem Palm-Emulator getestet werden.
    • Es ist möglich, ein Betriebssystem zu testen.
      • Beispiel: Der Emulator „Bochs“ bietet eine Debug-Schnittstelle an. Hiermit kann man prüfen (oder für Lehrzwecke beobachten), wie/ob etwas funktioniert.
  • Ausbildung: Ein Emulator erlaubt es, sich in Systeme einzuarbeiten, deren Anschaffung sonst sehr aufwändig wäre.
    • Beispiel: Mit dem Hercules-Emulator wird auf einem PC ein S/370 emuliert, auf dem ein komplettes MVS installiert wird.
  • Zur Langzeitarchivierung digitaler Objekte stellt die Emulation eine Alternative zur Migration bzw. Konvertierung dar (siehe auch Elektronische Archivierung).
  • Freizeit/Hobby: Alte Konsolenspiele aus den frühen achtziger Jahren können dank geeigneter Emulatoren wie z. B. M.E.S.S. auf moderner Hardware laufen.
  • Ergonomie: Software, die normalerweise nur auf Systemen mit unergonomischen Ein-/Ausgabegeräten läuft (LC-Displays), kann auf Systemen mit komfortablen Bildschirmen laufen.
    • Beispiel: Die Bildwiedergabe bei Game-Boy-Emulatoren auf einem PC ist besser als bei einem realen Game Boy.
  • Die MOSC-Szene setzt Emulatoren ein, um an Pay-TV-Angebote kostenlos und illegal zu gelangen. Diese machen meist einen Dump des Original-ROMs der Smartcard und implementieren dieses in einen Emulator für diverse Systeme wie zum Beispiel PCMCIA PC-Card, DVB-Receiver, DVB-S TV am PC. Der ehemalige Fernsehsender Premiere hatte seinerzeit mit Emulatoren zu kämpfen, da diese genau so funktionieren wie eine Original-Abo-SmartCard des Pay-TV-Senders. Des Weiteren sind nicht nur die verschlüsselten Schlüssel der SmartCard in diesen sog. EMUs enthalten, sondern auch diverse Verschlüsselungsalgorithmen wie z. B. Betacrypt I+II, alle Ableger des Systems Nagravision, Seca Mediaguard, Viaccess etc.

Siehe auch: Simulation, Bochs, DOSBox, M.E.S.S., PearPC, QEMU

Hardware-Emulatoren[Bearbeiten]

Hardware-Emulatoren ermöglichen das Entwickeln von maschinennaher Software, da keine Emulations-Software der in Entwicklung befindlichen Software das Zielsystem „vorgaukelt“, sondern in der Regel eine besondere Hardware ermöglicht, dass die Software in einer „echten“ Umgebung läuft. Die Emulations-Hardware bietet zumeist Möglichkeiten, die Software anzuhalten, Haltebedingungen zu setzen etc. ohne das Laufzeitverhalten der Software zu verändern. Die meisten Möglichkeiten bietet in der Regel ein In-Circuit-Emulator, bei dem ein besonders ausgerüsteter Mikroprozessor in der echten Zielhardware zur Softwareentwicklung genutzt wird.

Bekannte Software-Emulatoren[Bearbeiten]

Emulation von x86-Plattformen[Bearbeiten]

Emulation anderer Plattformen[Bearbeiten]

Zwitter-Systeme, die emulieren und virtualisieren[Bearbeiten]

VMware Server, Microsoft Virtual Server und Windows Virtual PC (die Version für Microsoft Windows Systeme) sind alles gemischte Systeme, bei denen im Wesentlichen nur der Prozessor virtualisiert wird. Der Rest der PC-Plattform, wie z. B. Netzwerkkarte, BIOS usw. hingegen wird emuliert.

Unabhängig von der real installierten Hardware (z. B. NE2000) kann z. B. beim VMWare Server entweder eine 100BaseTX-PCI-Netzwerkkarte von AMD, alternativ eine 1000BaseTX-(Gigabit)-PCI-Netzwerkkarte von Intel oder eine virtuelle Karte mit VMWare-eigenen Treibern emuliert werden. Als BIOS wird immer eine Phoenix-Variante emuliert.

Die von Microsoft Virtual PC emulierte LAN-Karte basiert, ebenfalls unabhängig vom Chipsatz der Karte des Virtual-PC-Hosts, immer auf einem DEC/Intel-21*4*-(TULIP)-Chip. Genauso basiert die Soundkarte immer auf einem Sound Blaster 16.

Oft dafür gehalten, jedoch keine Emulatoren[Bearbeiten]

Folgende Software – überwiegend Virtualisierungslösungen – wird fälschlicherweise oft für Emulations-Software gehalten:

  • VMware ESX Server zählt nicht zu den Emulatoren, da es sich hierbei um Virtualisierung, nicht Emulation, von Systemen handelt und weder Soft- noch Hardware emuliert wird. Vielmehr wird die Hardware virtualisiert
  • Wine (WINE Is Not an Emulator) – kein Emulator, da lediglich API-Funktionen emuliert werden (der Code als solches jedoch direkt ausgeführt wird)
  • CrossOver – siehe WINE
  • Cedega – siehe WINE
  • LINE – wie WINE kein Emulator
  • Xen – ist wie auch der VMware ESX Server ein Hypervisor und somit ein Virtualisierer.
  • E/OS
  • Mac-on-Linux, SheepShaver (ehemals ShapeShifter bzw. Basilisk II), Plex86
  • SCO UNIX - ein Betriebssystem
  • ScummVM – welches lediglich eine Art Interpreter für verschiedene, von Adventure-Spielen verwendete Skriptsprachen ist.
  • Hyper-V - siehe Xen

Systeme und Vorteile der Emulation[Bearbeiten]

Emulatoren existieren für fast jedes System. Beliebt sind Emulatoren für Heimcomputer, wie zum Beispiel der VICE für den Commodore 64 oder der UAE für den Amiga. Es existieren jedoch auch weitere unzählige Emulatoren für Computer, Handhelds, Arcade-Automaten und Spielkonsolen, siehe auch M.E.S.S..

In letzter Zeit spielen Emulatoren auch in der Freeware-Szene eine bedeutende Rolle. So bietet etwa der GameBoy Advance durch seine relativ einfache Programmierbarkeit die Möglichkeit, Spiele und Anwendungen zu entwickeln, die dann auch auf einem Emulator genutzt werden können.

Für den Nutzer, der Emulatoren z. B. zum Ausführen von alten, kommerziellen Computerspielen einsetzt, ist problematisch, dass diese auch dann noch unter dem Schutze des Urheberrechts stehen, wenn es sie seit mehreren Jahren nicht mehr zu kaufen gibt.

Gegenüber der echten, ursprünglichen Hardware besitzen Spielkonsolen-Emulatoren einige Vorteile. Dazu zählen die exzellente Bildqualität, der digital verarbeitete und somit verlustlos aufnehmbare Ton. Weitere, die Benutzerfreundlichkeit der eigentlichen Systeme erweiternde Aspekte sind z. B. das Verbessern der Videoausgabe (z. B. Weichzeichnen und Filtern von Grafiken bei Konsolen wie Super Nintendo oder PlayStation, obwohl diese Systeme niemals diese Techniken unterstützten, geschweige denn berechnen könnten) oder das Verwenden von Savestates zum schnellen Speichern und Laden von Spielständen – jederzeit während der Laufzeit des Spieles.

Nachteile der Software-Emulation[Bearbeiten]

Der größte Nachteil der Software-Emulation ist, dass sie eine hohe Rechenlast auf dem emulierenden System erzeugen. So können, selbst auf modernen Rechnern, zum Beispiel alte Spieleklassiker teilweise nicht flüssig laufen. Die Software-Entwicklung für solche Emulationen ist sehr aufwendig.

Ein weiterer Nachteil besteht darin, dass Spiele ohne Frame-Limiter zu schnell ablaufen können, wenn die Systemleistung ausreicht, das Spiel mit deutlich mehr Bildern pro Sekunde darzustellen als ursprünglich vorgesehen. Die meisten Emulatoren bieten jedoch die Möglichkeit, die emulierte Rechenleistung zu begrenzen.

Software[Bearbeiten]

ROMs[Bearbeiten]

Software älterer Computersysteme, besonders der Spielekonsolen, ist häufig nur in Form von ROM-Bausteinen verfügbar. Da sich ROMs relativ einfach auslesen lassen, arbeiten Emulatoren in der Regel problemlos mit so genannten ROM-Dateien (oder auch ROM Images), die in verschiedenen Dateiformaten vorliegen. Ein Hindernis bei der freien Verwertung und Verteilung ist allerdings, dass ROMs (Spiele) in der Regel urheberrechtlich geschützt sind und manche sogar noch kommerziell genutzt werden. Manche Emulatoren können auch komprimierte Dateien (z. B. im Zip-Format) lesen, die mehrere Dateien enthalten können.

Entpackt verweisen verschiedene Dateiendungen auf bestimmte ROM-Formate, beispielsweise:

  • .nds – Nintendo DS
  • .nes – Nintendo Entertainment System
  • .bin – manche ROM-Bausteine (zum Beispiel Arcade, A2600) gelegentlich auch für beliebige Images verwendet.
  • .crtC64 CaRTridge Image, ROMinhalt eines Steckmodules für den Expansionsport
  • .gb, .gbc, .gba – Gameboy, Gameboy Color und Gameboy Advance
  • .a26Atari 2600 Steckmodul
  • .smc – Super Nintendo ROM
  • .n64, .z64 – Nintendo64 ROM (auch im Zip-Format)
  • .smd – Sega MegaDrive ROM (abgeleitet von Super Magic Drive)
  • .sms – Sega Master System

Images von Datenträgern[Bearbeiten]

Ähnlich verhält es sich mit Kopien von Software, die auf Bändern oder Disketten ausgeliefert wurden. Auch hier sind Tape Images bzw. Disk Images für die Benutzung mit einem Emulator verbreitet.

  • .adf, .adz, .dms, .dmzAmiga Disk Files (.adf auch für Acorn Disc File)
  • .d64C64 Disk Image einer Floppy 1541 – 5,25″ einseitig – ~170 kB, weitere Disk-Formate existieren
  • .p00, .s00, .u00, .r00 – C64 Dateityp (PRG für Programme, SEQ für sequentielle Dateien, USR (User-Dateien) und REL für Dateien mit relativem (=wahlfreiem) Zugriff)
  • .msaAtari ST Disk Image
  • .sid – C64 Musikstück im SID-Format
  • .t64 – C64 Containerformat eines erweiterbaren Tape Images
  • .tap – C64 konvertiertes Original Tape File einer Datasette (8–16x größer als PRG)
  • .isoCD/DVD-Image, wird von verschiedenen Emulatoren verwendet
  • .img, .dskImages von verschiedenen Speichermedien
  • .vfdDiskettenimage von 3,5″-Disketten

Manche Emulatoren (zum Beispiel M.E.S.S.) können auch echte Töne von Cassetten als wav-Datei einlesen.

M.A.M.E.[Bearbeiten]

Hauptartikel: M.A.M.E.

Ein beliebter Emulator ist M.A.M.E. („Multiple Arcade Machine Emulator“), der tausende bekannte Arcade-Spiele wie Pac-Man emuliert.

Die Spiele-ROMs sind bei dem quelloffenen Emulator jedoch nicht enthalten.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  • Hansjürg Wüthrich: Emulatoren – Wie Computersysteme und Spielkonsolen unsterblich werden, Skriptorium-Verlag, 2007, ISBN 3-938199-08-3.

Weblinks[Bearbeiten]

 Wiktionary: Emulator – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
 Wiktionary: Emulation – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
 Commons: Emulation software – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten]