Zum Inhalt springen

„Emulator“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
 
(590 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
[[Datei:Stella Linux.png|mini|Freier Emulator ''Stella Linux''. Plattformübergreifender Emulator der [[Atari 2600|Atari-2600]]-Konsole]]
Als '''Emulation''' wird in der Computertechnik das funktionelle Nachbilden eines Systems durch ein anderes bezeichnet. Das nachbildende System erhält die gleichen [[Daten]], führt die gleichen [[Programme]] aus und erzielt die gleichen Ergebnisse wie das originale System. Ein '''Emulator''' ist ein System, das ein anderes emuliert. Zu unterscheiden sind Hardware- und Software-Emulatoren.
[[Datei:Herculmv.gif|mini|Emulator [[Hercules (Emulator)|Hercules]]. Emulation von Großrechnern]]


Als '''Emulator''' (von {{laS|aemulari}} ‚nachahmen‘) wird in der [[Computertechnik]] ein System bezeichnet, das ein anderes in bestimmten Teilaspekten nachbildet.
Ein Hardware-Emulator ist ein elektronisches Gerät, das einen [[Mikroprozessor]] (CPU) funktionell, elektrisch und mechanisch (Gehäuse und Pins) nachbilden kann. Die Verbindung zur Prozessorbaugruppe wird mittels [[Sockel_(Prozessor)|Sockel]] und passendem Stecker erstellt. Er wird auch als ''in circuit emulator'' (ICE) bezeichnet.


Das nachgebildete System erhält die gleichen [[Daten]], führt vergleichbare [[Computerprogramm|Programme]] aus und erzielt die möglichst gleichen Ergebnisse in Bezug auf bestimmte Fragestellungen wie das zu emulierende System.
:'''Beispiel1:''' Ein [[Faxmodem]] emuliert für den [[Computer]] einen [[Drucker (Peripheriegerät)|Drucker]], wird also über einen speziellen [[Druckertreiber]] angesprochen. Dem [[Telefonnetz]] gegenüber emuliert es ein [[Faxgerät]].


Software-Emulatoren sind Programme, die einen Computer oder ein Betriebssystem nachbilden und es so ermöglichen, Software für diesen Computer auf einem anderen Computer mit einer anderen Architektur zu verwenden oder zu erstellen. So können z. B. Spiele für ältere Spielekonsolen auf einem PC oder einer neueren Spielekonsole ablaufen. Auch kann ein Softwareentwickler bei der Entwicklung eines Programmes für ein Gerät (z. B. ein Mobiltelefon) dieses im Emulator testen und korrigieren, ohne es jedes Mal auf das Gerät kopieren zu müssen.
:'''Beispiel2:''' Ein [[Terminal]] emuliert für den [[Personal Computer|PC]] einen [[Großrechner|Host/Mainframe]], wird also über einen speziellen [[Terminalemulation]] angesprochen. Dem [[Großrechner|Host/Mainframe]] gegenüber emuliert es ein [[Terminal]] über einen DTC Digital Terminal Controller und einen MDP Multipel Digital Port.
Eine [[virtuelle Maschine]] wird oft als fälschlicher Weise als Emulation bezeichnet. Im Vordergrund steht aber, dass die gesamte Hardware also, CPU, RAM etc. eines anderen Systems (Hostrechner) virtuell und möglichst exakt nachgebildet wird. Jede Virtuelle Maschine besitzt dabei ihre eigene virtuelle Hardware und läuft unabhängig von den anderen Maschinen.


Ein Hardware-Emulator ist ein elektronisches Gerät, das ein System wie einen [[Drucker (Gerät)|Drucker]] oder einen [[Prozessor]] (CPU) funktionell, elektrisch oder mechanisch (Gehäuse und Pins) nachbilden kann. Die Verbindung zur Prozessorbaugruppe wird mittels [[Prozessorsockel|Sockel]] und passendem Stecker erstellt. Er wird auch als ''[[In-Circuit-Emulator]]'' (ICE) bezeichnet.<ref>{{Literatur |Autor=Olof Leps |Titel=Modellierung und Implementierung hybrider Testumgebungen für cyber-physische Sicherheitsanalysen |Sammelwerk=Hybride Testumgebungen für Kritische Infrastrukturen |Verlag=Springer Vieweg |Ort=Wiesbaden |Datum=2018 |ISBN=978-3-658-22613-8 |Seiten=69–119 |DOI=10.1007/978-3-658-22614-5_5}}</ref>
:'''Beispiele:'''
:* der [[Motorola 68000|68000er]]-Emulator, den [[Apple]] mit seinen [[PowerPC]]-basierten Betriebssystemversionen mitliefert ([[Mac OS]])
:* [[Mac-on-Linux]], das z.B. einen [[Pegasos]]-Rechner in einen [[PowerPC]]-basierten Macintosh-Clone verwandelt
:* Der Emulator ''atari800'', der unter Linux den [[Atari 800]] und den [[Atari 800 XL|800 XL]] aus den 80er Jahren wieder zum Leben erweckt
:* "Deamon-Tools" emuliert CD/DVD- Laufwerke am (Windows)PC


Ein [[Terminalemulation|Terminalemulator]] ist eine Software, welche die Funktion eines [[Terminal (Computer)|Terminals]] (Dateneingabe und Bildschirmausgabe) nachbildet, so dass man z.&nbsp;B. von einem PC auf eine entsprechende Anwendung zugreifen kann.


Emulatoren gehören zu den [[Interpreter]]n.
Eine [[Terminalemulation]] erlaubt die Interaktion mit textorientierten Programmen, die auf einem entfernten Rechner laufen, über eine externe Schnittstelle, meist eine serielle Leitung oder eine Modemverbindung. Terminalemulationen wurden programmiert, um das Verhalten eines "dummen" Terminals, also eines einfachen Datensicht- und Eingabegerätes, nachzuahmen. Terminalemulationen existieren auch für Rechner mit graphischer Oberfläche.


== Geschichte der Emulation ==
== Anwendungsbereiche ==
Im Jahre 1962 wurde erstmals ein (Prozessor-)Emulator eingesetzt. [[IBM]] arrangierte zahlreiche Tests 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]].


<!-- Der Konsolenbereich wurde 1978 zum ersten Mal mit Emulation konfrontiert. [[Coleco]] entwickelte einen [[Adapter]], der es erlaubte, Spiele für den [[Atari 2600]] auf ihrem [[ColecoVision]] zu nutzen. Doch [[Atari]] klagte sofort, und der Fall wurde abgeschlossen mit der Begründung, dass Ataris Videospiele „unpatentierbar“ seien. Später jedoch brachte Coleco mit dem „Gemini“ einen günstigen Atari-Klon auf den Markt.
Emulatoren werden für verschiedene Zwecke eingesetzt:


1983, als [[Nintendo]] in Japan das Famicom (in Europa: [[Nintendo Entertainment System]], NES) auf den Markt brachte, wurde aufgrund eines Gerichtsprozesses zwischen Atari und der JS&A Group auch erstmals festgelegt, dass das „Dumpen“ (Auslesen, Kopieren) von Spiele-ROMs illegal ist. Auf dieses Urteil wurde auch in späteren Gerichtsverhandlungen immer wieder zurückgegriffen. Mit dem Erscheinen des NES in den USA plante Nintendo gleichzeitig mit dem Neudesign des ursprünglichen Famicoms die Einführung des ersten Anti-Pirateriesystems für eine Videospielkonsole. Die patentierte Technologie, genannt 10NES, war in einem ROM in jedem lizenzierten NES-Modul gespeichert. Auf diese Weise sollten illegale Vervielfältigungen von Titeln und unlizenzierte Spiele anderer Hersteller verhindert werden. Es war auch das erste Mal, dass eine Konsole ein patentiertes Bauteil enthielt.
* 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. [[VirtualPC]] ein PC emuliert, auf dem [[Microsoft Windows|Windows]] installiert werden kann. Die meiste bisher gekaufte Windowssoftware kann weiter eingesetzt werden.
1985 erschien der [[Atari&nbsp;ST]] mit einer für den Heimcomputermarkt neuen [[Motorola-68000er-Familie|68000]]-CPU und dem Betriebssystem [[TOS (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 [[CP/M|CP/M-Z80]]-Emulator erleichtert. Dieser reine Softwareemulator erzeugte auf der 68000-Hardware eine virtuelle, vollständige [[Zilog Z80|Z80]]-CPU sowie ein mit CP/M 2.2 kompatibles Betriebssystem. Dadurch war ein problemloser Betrieb populärer wie vorhandener Software möglich.
** Das Open Source-Projekt [[Wine]] dagegen emuliert nur die Schnittstellen der Windows-Betriebssystems zur Anwendung.

* Softwareentwicklung:
<!--1988 brachte [[Sega]] in Japan die 16-Bit-Konsole [[Mega Drive]] auf den Markt, ein Jahr später erschien sie auch in den USA unter dem Namen Genesis. Ein ganz besonderes Merkmal war ein Adapter, der das Abspielen von Modulen der Vorgängerkonsole SEGA Master System erlaubte. Somit ist das Mega Drive die erste Konsole mit abwärtskompatibler Emulation.

Zur selben Zeit entwickelt Readysoft ''[[A-Max]]'', den ersten [[Macintosh]]-Emulator für den [[Amiga]], der das Apple-Produkt nahezu perfekt emulierte und sogar dessen Disketten im Amiga-Laufwerk lesen konnte. Der 1989 erwartete Prozess Apple gegen Readysoft fand aber nie statt. Stattdessen versuchte Apple, sämtliche alternativen Quellen für Mac-BIOS-Chips auszurotten, dies wurde aber von den eigenen Verkäufern und Lieferanten vereitelt. So wurde durch die A-Max-Affäre festgelegt, dass Emulatoren anderer Hersteller legitim sind. Während bei den Heimcomputern mit der Zeit die Emulatoren fast wie Pilze aus dem Boden schossen, blieb es im Konsolenbereich weitgehend ruhig.

Macronix beschuldigte [[Nintendo]] 1991, dass das Anti-Pirateriesystem des NES andere Verkäufer an Arbeiten an der Konsole verhindere, scheiterte aber mit seiner Klage. Etwa zur selben Zeit begann [[Yuji Naka]], ein japanischer Videospielprogrammierer, mit den Arbeiten an einem NES-Emulator für den SEGA Mega Drive. Das namenlose Projekt wird als der erste Videospielemulator angesehen, obwohl es nie das Licht der Welt erblickte.
-->
''MegaDrive'' war 1994 der erste veröffentlichte [[Videospiel]]emulator, welcher die [[Sega Mega Drive|gleichnamige]] [[Spielkonsole|Konsole]] nachbildete. Dieser unterstützte nur rudimentär das Spiel [[Sonic the Hedgehog (1991)|Sonic the Hedgehog]]; Die Entwicklung kam zum Erliegen, nachdem der Programmierer den [[Quelltext]] verloren hatte. Im selben Jahr wurde von Chris George die initiale, aber funktionsunfähige Version von „VSMC“ veröffentlicht, womit erstmals das [[Super Nintendo Entertainment System]] emuliert wurde.

== Druckeremulation ==
Die heute wohl in der EDV häufigsten Emulationen sind [[Drucker (Gerät)|Drucker]]- oder [[Plotter]]-emulationen. Fast alle hochwertigen [[Laserdrucker]] emulieren zurzeit einen [[Hewlett-Packard]]-LaserJet Drucker ([[Printer Command Language|HP-PCL]]), aber auch [[Rasterdrucker]] werden emuliert. Häufig sind auch nach wie vor die Emulationen [[Epson]] [[ESC/P]], [[IBM]]-Proprinter und andere.

== Terminalemulation ==
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 [[Microsoft Windows|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 ==
{{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
* [[Mac-on-Linux]], das unter Linux-Systemen auf [[PowerPC]]-Rechnern [[Mac OS (Classic)|Mac OS „Classic“]] und [[macOS|Mac OS&nbsp;X]]/PowerPC virtualisieren konnte;
* [[Parallels Desktop for Mac]], das das Ausführen von z.&nbsp;B. Windows und Linux unter [[macOS]] erlaubt. Einzelne Windows-Anwendungen (genauer: deren Fenster) können sich dabei losgelöst vom virtuellen Windows-Bildschirm „nahtlos“ wie Anwendungen für OS&nbsp;X verhalten;
* [[Parallels Workstation]], proprietäre Virtualisierung;
* [[VMware Workstation]], proprietäre Virtualisierung;
* [[VirtualBox]], kostenlose Virtualisierung, sehr beliebt in privaten und semi-professionellen Bereichen;
* [[Virtual PC]] (Entwicklung eingestellt), Virtualisierung auf einem [[Microsoft Windows|Windows]]- oder [[OS/2]]-System (auf PowerPC-[[Macintosh]]-Rechnern hingegen eine x86-Emulation);
* [[Hyper-V]], Nachfolger von ''Windows Virtual PC'';

== Kompatibilitätsschicht ==
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 Software[[schnittstelle]]n 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. Ein weiteres Beispiel sind transparente (vom Benutzer nicht wahrgenommene) in das Betriebssystem integrierte Emulatoren. Beispiele dafür sind das bei [[Microsoft Windows NT 4.0#Unterstützung alternativer Architekturen|Windows&nbsp;NT 4.0]] auf der [[Alpha-Prozessor|Alpha]]-Architektur integrierte [[FX!32]], das für eine transparente Emulation von x86-Software verwendet wurde, oder [[Mac OS (Classic)|klassisches Mac&nbsp;OS]], das eine transparente Emulation von [[Motorola-68000er-Familie|m68k]]-Maschinencode bot, oder [[macOS]] (ursprünglich „Mac OS&nbsp;X“), das nach einem Architekturwechsel (von [[PowerPC]] zu [[x86-Architektur|x86]] 2005 bzw. von x86 zu [[Arm-Architektur|Arm]] 2021) mit [[Rosetta (Apple)|Rosetta]] in bestimmten Versionen ebenfalls eine transparente Emulation als Kompatibilitätsschicht integriert hat.

''Siehe auch:'' [[Laufzeitumgebung]] und [[Programmierschnittstelle]]

== Anwendungsbereiche ==
[[Datei:Emulator of HP-41CX on iPhone 6s.jpg|mini|Software-Emulation des programmierbaren Taschenrechners [[HP-41C]]X von 1983 als [[Mobile App|App]] auf einem [[iPhone]] 6s, 2021. Als Zusatzfunktion kann ein Druckermodus aktiviert werden, der die Ausgabe des damals als Zubehör erhältlichen [[Thermodrucker]]s emuliert.]]
Emulatoren werden für verschiedene Zwecke eingesetzt:
* Investitionsschutz: Software, die für ältere Systeme entwickelt worden ist, kann auf modernen Systemen weiter laufen.
** Beispiel: mittels u.&nbsp;a. [[Bochs]], [[QEMU]], [[VMware]] oder [[Virtual&nbsp;PC]] wird ein [[IBM-PC-kompatibler Computer|IBM-kompatibler]] PC emuliert, auf dem z.&nbsp;B. eine entsprechende Version von [[Microsoft Windows|Windows]] installiert werden kann; mittels [[Basilisk II]], [[SheepShaver]] oder QEMU wird ein m68k- oder PowerPC-[[Macintosh|Mac]] emuliert, auf dem z.&nbsp;B. eine ältere Version von [[Mac OS (Apple)|Mac OS]] installiert werden kann. Damit kann für die jeweilige Plattform gekaufte Software, die nun per Emulation auch auf moderneren Systemen weiterhin zur Verfügung steht, trotz Systemwechsels weiter eingesetzt werden, wenn auch mit gewissen Einschränkungen.
** 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]]- und [[Virtual Address eXtension|VAX]]-AlphaServer von DEC inklusive des Betriebssystems [[OpenVMS]] oft schon seit über zwanzig Jahren im Einsatz. Bei Emulatoren wie [[Charon (Software)|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.
** 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 dem Palm Emulator getestet werden.
*** 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
** 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.
*** Beispiel: Der Emulator „Bochs“ bietet eine [[Debugger|Debug]]-[[Schnittstelle]] an. Hiermit kann man prüfen (oder für Lehrzwecke beobachten), wie und ob etwas funktioniert.
** Es ist möglich, die Funktionsweise komprimierter oder partiell verschlüsselter Software zu ermitteln.
* Ausbildung: Ein Emulator erlaubt es, sich in Systeme einzuarbeiten, deren Anschaffung sonst sehr aufwändig wäre.
*** Beispiel: Zwecks Identifizierung unbekannter oder gepackter Malware kann diese in einer Testumgebung auf ihre Funktionsweise untersucht werden. Es kann festgestellt werden, ob es sich um bereits bekannte Malware in verschlüsselter oder gepackter Form handelt. Dies ist in einigen [[Antivirenprogramm]]en wie [[Comodo Internet Security]] umgesetzt.
* Ausbildung: Ein Emulator erlaubt es, sich in Systeme einzuarbeiten, deren Anschaffung sonst sehr aufwändig wäre.
** Beispiel: Mit dem [[Hercules (Emulator)|Hercules]]-Emulator wird auf einem PC ein [[S/370]] emuliert, auf dem ein komplettes [[Multiple Virtual Storage|MVS]] installiert wird.
** Beispiel: Mit dem [[Hercules (Emulator)|Hercules]]-Emulator wird auf einem PC ein [[S/370]] emuliert, auf dem ein komplettes [[Multiple Virtual Storage|MVS]] installiert wird.
* Zur [[Langzeitarchivierung]] digitaler Objekte stellt die Emulation eine Alternative zur [[Migration (Informationstechnik)|Migration]] bzw. [[Konvertierung (Informatik)|Konvertierung]] dar (siehe auch [[Elektronische Archivierung#Strategien zur Sicherstellung der Verfügbarkeit archivierter Information|Elektronische Archivierung]]).
* Zur [[Langzeitarchivierung]] digitaler Objekte stellt die Emulation eine Alternative zur [[Migration (Informationstechnik)|Migration]] bzw. [[Konvertierung (Informatik)|Konvertierung]] dar (siehe auch [[Elektronische Archivierung#Strategien zur Sicherstellung der Verfügbarkeit archivierter Information|Elektronische Archivierung]]).
* Freizeit/Hobby: Alte Konsolenspiele aus den frühen achtziger Jahren können dank geeigneter Emulatoren wie z.B. MESS auf moderner Hardware laufen.
* Freizeit/Hobby: Konsolenspiele können dank geeigneter Emulatoren wie z.&nbsp;B. [[MESS]] oder [[Dolphin (Emulator)|Dolphin]] unter diversen Betriebssystemen auf aktueller Hardware laufen, darunter neben alten Konsolenspielen aus den frühen achtziger Jahren auch Spiele für neuere Konsolen. Soundemulatoren wie ASAP oder UADE erlauben zudem die Ausgabe der Musik von Computerspielen.
* Ergonomie: Software, die normalerweise nur auf Systemen mit unergonomischen Ein-/Ausgabegräten läuft (LC-Displays), kann auf Systemen mit komfortablen Bildschirmen 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 beim Game Boy Emulator auf einem PC ist besser als bei einem realen Game Boy.
** 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 [[Chipkarte|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.&nbsp;B. Betacrypt I+II, alle Ableger des Systems Nagravision, Seca Mediaguard, Viaccess etc.


''Siehe auch:'' [[Simulator]], [[Bochs]], [[Dosbox]], [[MESS]], [[PearPC]], [[QEMU]]
''Siehe auch:'' [[Simulation]], [[Bochs]], [[DOSBox]], [[MESS]], [[PearPC]], [[QEMU]]

== Bekannte Hardware Emulatoren ==
== Hardware-Emulatoren ==
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.


* [[HP Terminal]]
* [[HP Terminal]]
* [[Memorex Telex Terminal]]
* [[Memorex Telex Terminal]]
* JANUS (Atari-Hardwareemulator für den PC von 1995)
* [[Siemens DS078]], [[VDU2000]], [[DISIT]], [[DS075]] Terminals
* [[Virtuelles Laufwerk]]
* [[Diskette|Floppy Drive Emulator]]


== Bekannte Software Emulatoren ==
== Bekannte Software-Emulatoren ==
=== Emulation von x86-Plattformen ===

* [[Bochs]]
* [[Bochs]]
* [[DOSBox]]
* [[CrossoverOffice]] von CodeWeavers
* [[MESS]]
* [[DOSEMU]]
* [[QEMU]]
* [[QEMU]]
* [[Teemtalk]] von Neoware früher Pericom
* [[TeemTalk]] von Hewlett-Packard (früher Pericom)
* [[Virtual PC#Emulator|Virtual PC]] von Connectix bzw. Microsoft (emuliert eine x86-Plattform auf [[Macintosh]]-Systemen)

* [[Win4Lin]] von Netraverse
* [[Win4Lin]] von Netraverse


=== Emulation von PowerPC-Plattformen ===
* [[VMWare]] 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.
* [[PearPC]] emuliert [[PowerPC G3|PowerPC-G3]]- und [[PowerPC G4|G4]]-Plattformen, hauptsächlich für den Einsatz einiger älterer Versionen von [[macOS|Mac OS&nbsp;X]]/PPC
* [[WINE Is Not an Emulator|WINE]], wie der Name schon sagt WINE Is Not an Emulator, wie VMware kein Emulator
* [[SheepShaver]] emuliert G3- oder G4-PowerPC-Macs für den Einsatz von [[Mac OS (Classic)|klassischem Mac&nbsp;OS]] bis 9.0.4
* [[GXemul]] emuliert [[PowerPC]], ARM, MIPS, [[M88K]], und [[SuperH]] für den Einsatz unixoider Gastbetriebsysteme

=== Emulation von 68k-Plattformen ===
* [[Basilisk II]] emuliert einen Macintosh-Computer mit [[Motorola 68000|Motorola-68000]]-Prozessor, hauptsächlich für den Einsatz älterer 68k-Versionen von Mac&nbsp;OS und [[Mac OS (Classic)|System]].
* [[Amiga-Emulator#UAE|UAE]] emuliert Commodore-[[Amiga]]-Systeme (Motorola 68k-Prozessoren und Custom-Chips)

=== Emulation anderer Plattformen ===
* [[Hercules (Emulator)|Hercules]], ein Emulator für verschiedene [[IBM]] [[Mainframe]]s wie das [[System/360]]/370/390.
* [[MAME]] emuliert verschiedene [[Arcade-Automat]]en
* [[MESS]] emuliert verschiedene [[Spielkonsole]]n und [[Heimcomputer]]-Modelle
* [[SIMH]] emuliert verschiedene [[Minirechner]] und [[Großrechner]]
* [[CPMZ80]] bildet auf den Atari-ST-Computern eine Z80-CPU sowie ein CP/M-2.2-Betriebssystem nach
* epsxe bildet die Hardware-Umgebung der [[PlayStation]] 1 auf x86-Systemen ab

=== Zwitter-Systeme, die emulieren und virtualisieren ===
[[VMware|VMware Server]], [[Microsoft Virtual Server]] und [[Virtual&nbsp;PC]] (die Version für [[Microsoft Windows|Windows]]- und [[OS/2]]-Systeme) sind alles gemischte Systeme, bei denen im Wesentlichen nur der Prozessor virtualisiert wird. Der Rest der PC-Plattform, wie z.&nbsp;B. Netzwerkkarte, BIOS usw., wird hingegen emuliert.

Unabhängig von der real installierten Hardware (z.&nbsp;B. [[NE2000]]) kann z.&nbsp;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 Virtual&nbsp;PC emulierte LAN-Karte basiert, ebenfalls unabhängig vom Chipsatz der Karte des Virtual-PC-Hosts, immer auf einem [[Digital Equipment Corporation|DEC]]/Intel-21×4×-Ethernet-Chip („Tulip“). Genauso basiert die Soundkarte immer auf einem [[Sound Blaster]] 16.

=== Oft dafür gehalten, jedoch keine Emulatoren ===
Folgende Software –&nbsp;überwiegend [[Virtualisierung (Informatik)|Virtualisierungslösungen]]&nbsp;– wird fälschlicherweise oft für Emulations-Software gehalten:

* [[VMware|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]] ('''W'''INE '''I'''s '''N'''ot an '''E'''mulator) – kein Emulator, da lediglich API-Funktionen emuliert werden (der Code als solches jedoch direkt ausgeführt wird)
* [[CrossOver]] – siehe WINE
* [[Cedega]] – siehe WINE
* [[LINE (Software)|LINE]] – wie WINE kein Emulator
* [[Xen]] – ist wie auch der VMware ESX Server ein [[Hypervisor]] und somit ein Virtualisierer
* [[E/OS]]
* [[Mac-on-Linux]] virtualisiert PowerPC-Versionen von klassischem Mac&nbsp;OS und Mac&nbsp;OS&nbsp;X auf einem Computer mit ebenfalls einem PowerPC-Prozessor unter Linux
* [[ShapeShifter]] virtualisiert klassisches Mac&nbsp;OS bis 8.1 auf einem Amiga mit [[Motorola 68000|68k]]-Prozessor (ab [[Amiga 1200]])
* [[Plex86]]
* [[SCO UNIX]] – ein Betriebssystem
* [[ScummVM]] – welches lediglich eine Art [[Interpreter]] für verschiedene, von [[Adventure]]-Spielen verwendete [[Skriptsprache]]n ist.
* [[Hyper-V]] – siehe Xen

== Systeme und Vorteile der Emulation ==
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 [[Unix Amiga Emulator|UAE]] für den [[Amiga]]. Es existieren jedoch auch weitere unzählige Emulatoren für Computer, [[Handheld]]s, [[Arcade-Automat]]en und [[Spielkonsole]]n, siehe auch [[MESS]].


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


Für den Nutzer, der Emulatoren z.&nbsp;B. zum Ausführen von alten, kommerziellen [[Computerspiel]]en einsetzt, ist problematisch, dass diese auch dann noch unter dem Schutze des [[Urheberrecht]]s stehen, wenn es sie seit mehreren Jahren nicht mehr zu kaufen gibt.
Emulatoren existieren für fast jedes System, so z.B. für


Gegenüber der echten, ursprünglichen Hardware besitzen Spielkonsolen-Emulatoren einige Vorteile. Dazu zählen die exzellente Bildqualität und der digital verarbeitete und somit verlustlos aufnehmbare Ton. Weitere die [[Benutzerfreundlichkeit]] der eigentlichen Systeme erweiternde Aspekte sind z.&nbsp;B. das Verbessern der Videoausgabe (z.&nbsp;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 [[Savestate]]s zum schnellen Speichern und Laden von Spielständen – jederzeit während der [[Laufzeit (Informatik)|Laufzeit]] des Spieles.
* [[Atari 2600]]
* [[Atari ST]]
* [[C64]]
* [[Amiga]]
* [[GameBoy]] (Bsp. Emulator: VisualBoyAdvance)
* [[Macintosh]] ([[68000]] und [[PowerPC]])
* [[International Business Machines|IBM]] [[Großrechner]] ([[S/360]] bis [[zSeries]]) (siehe [[Hercules (Emulator)]])
* [[Intel x86]]
* [[Nintendo Entertainment System|NES]]
* [[SNES]]
* [[Nintendo 64]]
* [[Sega Master System]]
* [[Sega Mega Drive]]
* [[Palm]]
* [[PlayStation]] (Bsp. Emulator: ePSXe)
* Sinclair [[ZX81]] und [[ZX Spectrum]]
* [[PC Engine]]
* [[Neo Geo]]


== Nachteile der Software-Emulation ==
Sämtliche emulierte Systeme zu nennen würde den Rahmen hier sprengen.
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.
In letzter Zeit spielen Emulatoren auch in der [[Freeware]]-Szene eine bedeutende Rolle. So bietet etwa der [[GameBoy Advance]] durch seine relativ einfache Programmiersprache (eine vereinfachte Version von [[C (Programmiersprache)|C]]) die Möglichkeit, Spiele und Anwendungen zu programmieren, die dann auf einem Emulator genutzt werden.


== Software ==
Für den Nutzer, der Emulatoren z.B. zum Ausführen von alten, kommerziellen [[Computerspiel|Computer]]- und [[Videospiel]]en einsetzt, ist problematisch, dass diese auch dann noch unter dem Schutze des [[Urheberrecht]]s stehen, wenn es sie seit mehreren Jahren nicht mehr zu kaufen gibt.
=== ROMs ===
Software älterer Computersysteme, besonders der Spielekonsolen oder Spielautomaten, ist häufig nur in Form von [[Festwertspeicher|ROM]]-Bausteinen verfügbar. Da sich ROMs relativ einfach auslesen lassen, arbeiten Emulatoren in der Regel problemlos mit sogenannten ROM-Dateien (oder auch ''ROM Images''), die in verschiedenen Dateiformaten vorliegen. Ein Hindernis bei der freien Verwertung und Verteilung ist allerdings, dass ROM-Inhalte in der Regel urheberrechtlich geschützt sind und manche sogar noch kommerziell genutzt werden. Manche Emulatoren können auch komprimierte Dateien (z.&nbsp;B. im ZIP-Format) lesen, die mehrere Dateien enthalten können.


ROM-Dateien haben an sich keine festgelegte [[Dateinamenserweiterung]]. Für populäre Systeme werden häufig Bezeichnungen verwendet, die auf das zugehörige System hinweisen, beispielsweise:
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 [[Usability]] 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 [[Savestate|Savestates]] zum schnellen Speichern und Laden von Spielständen - jederzeit während der [[Laufzeit]] des Spieles.
<!-- Bitte nicht sämtliche Formate aufführen, es soll nur um Beispiele gehen. -->


* <code>.bin</code> – allgemeine Bezeichnung für eine ausgelesene [[Binärdatei]]
== ROMs ==
* <code>.a26</code>, <code>.a78</code> – [[Atari 2600]], [[Atari 7800]]
* <code>.crt</code> – [[Commodore 64]] Cartridge Image
* <code>.gb</code>, <code>.gbc</code>, <code>.gba</code> – [[Game Boy]], [[Game Boy Color]] und [[Game Boy Advance]]
* <code>.n64</code>, <code>.z64</code> – [[Nintendo 64]] (beide Formate unterscheiden sich durch die verwendete [[Byte-Reihenfolge]])
* <code>.nds</code> – [[Nintendo DS]]
* <code>.nes</code> – [[Nintendo Entertainment System]]
* <code>.sfc</code>, <code>.smc</code> – [[Super Nintendo Entertainment System]]
* <code>.smd</code> – [[Sega Mega Drive]]
* <code>.sms</code> – [[Sega Master System]]


=== Images von Datenträgern ===
Software älterer Computersysteme, besonders der Spielekonsolen, ist häufig nur in Form von [[Read-Only-Memory|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. Ähnlich wird 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.
Ähnlich verhält es sich mit Kopien von Software, die auf Bändern, Disketten oder optischen Datenträgern ausgeliefert wurden. Auch hier sind ''Tape-Images'' bzw. ''Disk-Images'' ([[Image-Datei]]en) für die Benutzung mit einem Emulator verbreitet.


* <code>.adf</code>, <code>.adz</code>, <code>.dms</code>, <code>.dmz</code> – [[Amiga]] Disk Files (.adf auch für [[Acorn]] Disc File)
Entpackt verweisen verschiedene Dateiendungen auf bestimmte ROM-Formate:
* <code>.d64</code> – [[Commodore 64|C64]] Disk-Image einer [[VC1541|Floppy 1541]] – 5,25″ einseitig – ~170&nbsp;kB; weitere Disk-Formate existieren
* <code>.p00</code>, <code>.s00</code>, <code>.u00</code>, <code>.r00</code> – C64-Dateityp (PRG für Programme, SEQ für sequentielle Dateien, USR (User-Dateien) und REL für Dateien mit relativem (wahlfreiem) Zugriff)
* <code>.msa</code> – [[Atari&nbsp;ST]] Disk-Image
* <code>.sid</code> – C64-Musikstück im [[MOS Technology SID|SID]]-Format
* <code>.t64</code> – C64-[[Containerformat]] eines erweiterbaren Tape-Images
* <code>.tap</code> – C64-konvertiertes Original-Tape-File einer [[Datasette]] (8–16x größer als PRG)
* <code>.iso</code> – [[ISO-Abbild|CD/DVD-Image]]; wird von verschiedenen Emulatoren verwendet
* <code>.img</code>, <code>.dsk</code> – [[Image-Datei]]en verschiedener Speichermedien
* <code>.vfd</code> – [[Diskettenabbild]] von 3,5″-[[Diskette]]n


Manche Emulatoren (zum Beispiel M.E.S.S.) können auch echte Töne von Cassetten als [[RIFF WAVE|wav]]-Datei einlesen.
* .adf -- Amiga Disk Files
* .nes -- Nintendo Entertaiment System
* .smc -- Super Nintendo Entertaiment System
* .bin -- Image einer Standard-CD, etwa einer Playstation
* .d64 -- [[C64]] Disk Image
* .gb .gbc .gba -- Gameboy, Gameboy Color & Gameboy Advance


== Siehe auch ==
Der bekannteste Emulator und der mit Abstand beliebteste, ist [[MAME]].
* [[Binäremulation]]
Mame steht für "Multiple Arcade Machine Emulator" und emuliert in der aktuellen Version 0.86 insgesamt ca. 2.500 Arcade-Automaten (ohne [[Clone]]s und nicht funktionierende Spiele).
* [[Kompatibilität (Technik)]]
* [[Homebrew]]


== Literatur ==
Ein Problem ist allerdings, dass nicht alle ROMs copyrightfrei sind und noch kommerziell genutzt werden. Das MAME Open Source Projekt nimmt deswegen keine Roms auf, die jünger als 2 Jahre sind, auch um Neuentwicklungen nicht zu gefährden. Wobei das nicht ausschließt, dass alternative MAME Versionen das immer mal wieder tun, mit mehr oder weniger Erfolg. Neuere, erst wenige Monate alte ROMs zwingen in der Regel jeden PC in die Knie und werden nur mangelhaft emuliert.
* {{Literatur
|Autor=Hansjürg Wüthrich
|Titel=Emulatoren – Wie Computersysteme und Spielkonsolen unsterblich werden
|Verlag=Skriptorium-Verlag
|Datum=2007
|ISBN=978-3-938199-08-4}}


== Weblinks ==
Ältere wie [[Pacman]], Mr. Do, Popeye und [[Polyplay]] (der einzige Arcade Automat der DDR) laufen hingegen wie auf den Original-Automaten, das einzige, was fehlt, ist der klassische Münzeinwurf. Es gibt allerdings Nachbauten im Gehäuse eines normalen Automaten, die einen PC enthalten, auf dem MAME läuft und der explizit an die Hardware des Automaten angepasst wurde.
{{Wiktionary}}
{{Wiktionary|Emulation}}
{{Commonscat|Emulation software}}
* {{dmoz|Games/Video_Games/Emulation/}}
* [http://www.nintendo.com/corp/legal.jsp#roms Nintendo über ROMs und Emulatoren] (englisch)
* [http://emulator-zone.com/ The Emulator Zone] – Übersicht über Emulatoren für viele Konsolen (englisch)
* [http://www.aep-emu.de/ AEP Emulation Page] – News, Forum und Datenbank für Emulatoren (deutsch)
* [https://github.com/PhoenixInteractiveNL/emuDownloadCenter/wiki Emu-Download-Center] – Große Sammlung von Emulatoren


== Einzelnachweise ==
Die Szene der Emulationsfans ist sehr groß, wächst, unterhält viele Foren und stellt eine große Konkurrenz zum kommerziellen PC-Spiele-Sektor dar. Innerhalb dieser bildete sich auch die [[Translations-Szene]], die sich vorwiegend mit dem übersetzen vom japanischen Nintendo- und Sega-ROMs ins Englische beschäftigt oder etwa jap./engl. ins Deutsche, da die Spiele von den Herstellern selber für den deutschen Markt nie lokalisiert wurden.
<references />


[[en:Emulator]]
[[Kategorie:Emulator| ]]
[[es:Emulador]]
[[fr:Émulateur]]
[[ia:Emulator]]
[[ja:エミュレータ]]
[[nl:Emulator]]
[[pl:Emulator]]
[[pt:Emulador]]
[[sv:Emulator]]
[[tr:Emülasyon]]
[[zh:模拟器]]

Aktuelle Version vom 14. März 2025, 17:32 Uhr

Freier Emulator Stella Linux. Plattformübergreifender Emulator der Atari-2600-Konsole
Emulator Hercules. Emulation von Großrechnern

Als Emulator (von lateinisch aemulari ‚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 oder ein Betriebssystem nachbilden und es so ermöglichen, Software für diesen Computer auf einem anderen Computer mit einer anderen Architektur zu verwenden oder zu erstellen. So können z. B. Spiele für ältere Spielekonsolen auf einem PC oder einer neueren Spielekonsole ablaufen. Auch kann ein Softwareentwickler bei der Entwicklung eines Programmes für ein Gerät (z. B. ein Mobiltelefon) 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.[1]

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

Emulatoren gehören zu den Interpretern.

Geschichte der Emulation

[Bearbeiten | Quelltext bearbeiten]

Im Jahre 1962 wurde erstmals ein (Prozessor-)Emulator eingesetzt. IBM arrangierte zahlreiche Tests 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 CP/M-Z80-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 veröffentlichte Videospielemulator, welcher die gleichnamige Konsole nachbildete. Dieser unterstützte nur rudimentär das Spiel Sonic the Hedgehog; Die Entwicklung kam zum Erliegen, nachdem der Programmierer den Quelltext verloren hatte. Im selben Jahr wurde von Chris George die initiale, aber funktionsunfähige Version von „VSMC“ veröffentlicht, womit erstmals das Super Nintendo Entertainment System emuliert wurde.

Druckeremulation

[Bearbeiten | Quelltext bearbeiten]

Die heute wohl in der EDV häufigsten Emulationen sind Drucker- oder Plotter-emulationen. Fast alle hochwertigen Laserdrucker emulieren zurzeit 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 | Quelltext 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 | Quelltext bearbeiten]

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 | Quelltext 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. Ein weiteres Beispiel sind transparente (vom Benutzer nicht wahrgenommene) in das Betriebssystem integrierte Emulatoren. Beispiele dafür sind das bei Windows NT 4.0 auf der Alpha-Architektur integrierte FX!32, das für eine transparente Emulation von x86-Software verwendet wurde, oder klassisches Mac OS, das eine transparente Emulation von m68k-Maschinencode bot, oder macOS (ursprünglich „Mac OS X“), das nach einem Architekturwechsel (von PowerPC zu x86 2005 bzw. von x86 zu Arm 2021) mit Rosetta in bestimmten Versionen ebenfalls eine transparente Emulation als Kompatibilitätsschicht integriert hat.

Siehe auch: Laufzeitumgebung und Programmierschnittstelle

Anwendungsbereiche

[Bearbeiten | Quelltext bearbeiten]
Software-Emulation des programmierbaren Taschenrechners HP-41CX von 1983 als App auf einem iPhone 6s, 2021. Als Zusatzfunktion kann ein Druckermodus aktiviert werden, der die Ausgabe des damals als Zubehör erhältlichen Thermodruckers emuliert.

Emulatoren werden für verschiedene Zwecke eingesetzt:

  • Investitionsschutz: Software, die für ältere Systeme entwickelt worden ist, kann auf modernen Systemen weiter laufen.
    • Beispiel: mittels u. a. Bochs, QEMU, VMware oder Virtual PC wird ein IBM-kompatibler PC emuliert, auf dem z. B. eine entsprechende Version von Windows installiert werden kann; mittels Basilisk II, SheepShaver oder QEMU wird ein m68k- oder PowerPC-Mac emuliert, auf dem z. B. eine ältere Version von Mac OS installiert werden kann. Damit kann für die jeweilige Plattform gekaufte Software, die nun per Emulation auch auf moderneren Systemen weiterhin zur Verfügung steht, trotz Systemwechsels weiter eingesetzt werden, wenn auch mit gewissen Einschränkungen.
    • 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- und 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 und ob etwas funktioniert.
    • Es ist möglich, die Funktionsweise komprimierter oder partiell verschlüsselter Software zu ermitteln.
      • Beispiel: Zwecks Identifizierung unbekannter oder gepackter Malware kann diese in einer Testumgebung auf ihre Funktionsweise untersucht werden. Es kann festgestellt werden, ob es sich um bereits bekannte Malware in verschlüsselter oder gepackter Form handelt. Dies ist in einigen Antivirenprogrammen wie Comodo Internet Security umgesetzt.
  • 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: Konsolenspiele können dank geeigneter Emulatoren wie z. B. MESS oder Dolphin unter diversen Betriebssystemen auf aktueller Hardware laufen, darunter neben alten Konsolenspielen aus den frühen achtziger Jahren auch Spiele für neuere Konsolen. Soundemulatoren wie ASAP oder UADE erlauben zudem die Ausgabe der Musik von Computerspielen.
  • 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, MESS, PearPC, QEMU

Hardware-Emulatoren

[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]

Emulation von x86-Plattformen

[Bearbeiten | Quelltext bearbeiten]

Emulation von PowerPC-Plattformen

[Bearbeiten | Quelltext bearbeiten]

Emulation von 68k-Plattformen

[Bearbeiten | Quelltext bearbeiten]
  • Basilisk II emuliert einen Macintosh-Computer mit Motorola-68000-Prozessor, hauptsächlich für den Einsatz älterer 68k-Versionen von Mac OS und System.
  • UAE emuliert Commodore-Amiga-Systeme (Motorola 68k-Prozessoren und Custom-Chips)

Emulation anderer Plattformen

[Bearbeiten | Quelltext bearbeiten]

Zwitter-Systeme, die emulieren und virtualisieren

[Bearbeiten | Quelltext bearbeiten]

VMware Server, Microsoft Virtual Server und Virtual PC (die Version für Windows- und OS/2-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., wird hingegen 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 Virtual PC emulierte LAN-Karte basiert, ebenfalls unabhängig vom Chipsatz der Karte des Virtual-PC-Hosts, immer auf einem DEC/Intel-21×4×-Ethernet-Chip („Tulip“). Genauso basiert die Soundkarte immer auf einem Sound Blaster 16.

Oft dafür gehalten, jedoch keine Emulatoren

[Bearbeiten | Quelltext 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 virtualisiert PowerPC-Versionen von klassischem Mac OS und Mac OS X auf einem Computer mit ebenfalls einem PowerPC-Prozessor unter Linux
  • ShapeShifter virtualisiert klassisches Mac OS bis 8.1 auf einem Amiga mit 68k-Prozessor (ab Amiga 1200)
  • 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 | Quelltext 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 MESS.

In letzter Zeit spielen Emulatoren auch in der Freeware-Szene eine bedeutende Rolle. So bietet etwa der Game Boy 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 und 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 | Quelltext 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 älterer Computersysteme, besonders der Spielekonsolen oder Spielautomaten, 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 sogenannten ROM-Dateien (oder auch ROM Images), die in verschiedenen Dateiformaten vorliegen. Ein Hindernis bei der freien Verwertung und Verteilung ist allerdings, dass ROM-Inhalte 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.

ROM-Dateien haben an sich keine festgelegte Dateinamenserweiterung. Für populäre Systeme werden häufig Bezeichnungen verwendet, die auf das zugehörige System hinweisen, beispielsweise:

Images von Datenträgern

[Bearbeiten | Quelltext bearbeiten]

Ähnlich verhält es sich mit Kopien von Software, die auf Bändern, Disketten oder optischen Datenträgern ausgeliefert wurden. Auch hier sind Tape-Images bzw. Disk-Images (Image-Dateien) 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, .dskImage-Dateien verschiedener Speichermedien
  • .vfdDiskettenabbild von 3,5″-Disketten

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

  • Hansjürg Wüthrich: Emulatoren – Wie Computersysteme und Spielkonsolen unsterblich werden. Skriptorium-Verlag, 2007, ISBN 978-3-938199-08-4.
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 | Quelltext bearbeiten]
  1. Olof Leps: Modellierung und Implementierung hybrider Testumgebungen für cyber-physische Sicherheitsanalysen. In: Hybride Testumgebungen für Kritische Infrastrukturen. Springer Vieweg, Wiesbaden 2018, ISBN 978-3-658-22613-8, S. 69–119, doi:10.1007/978-3-658-22614-5_5.