[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki20\/2021\/01\/01\/emulator-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki20\/2021\/01\/01\/emulator-wikipedia\/","headline":"Emulator – Wikipedia","name":"Emulator – Wikipedia","description":"before-content-x4 Beim Rechnen ein Emulator ist Hardware oder Software, die ein Computersystem erm\u00f6glicht (genannt Gastgeber) sich wie ein anderes Computersystem","datePublished":"2021-01-01","dateModified":"2021-01-01","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki20\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki20\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/e\/e2\/DOSBox_screenshot.png\/275px-DOSBox_screenshot.png","url":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/e\/e2\/DOSBox_screenshot.png\/275px-DOSBox_screenshot.png","height":"172","width":"275"},"url":"https:\/\/wiki.edu.vn\/wiki20\/2021\/01\/01\/emulator-wikipedia\/","wordCount":9514,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4 Beim Rechnen ein Emulator ist Hardware oder Software, die ein Computersystem erm\u00f6glicht (genannt Gastgeber) sich wie ein anderes Computersystem zu verhalten (genannt Gast). Ein Emulator erm\u00f6glicht es dem Host-System normalerweise, Software auszuf\u00fchren oder Peripherieger\u00e4te zu verwenden, die f\u00fcr das Gastsystem entwickelt wurden. Emulation bezieht sich auf die F\u00e4higkeit eines Computerprogramms in einem elektronischen Ger\u00e4t, ein anderes Programm oder Ger\u00e4t zu emulieren (oder zu imitieren). Viele Drucker sind beispielsweise so konzipiert, dass sie HP LaserJet-Drucker emulieren, da so viel Software f\u00fcr HP Drucker geschrieben wurde. Wenn ein Nicht-HP-Drucker einen HP-Drucker emuliert, wird jede f\u00fcr einen echten HP-Drucker geschriebene Software auch in der Nicht-HP-Druckeremulation ausgef\u00fchrt und erzeugt einen gleichwertigen Druck. Seit mindestens den 1990er Jahren haben viele Videospiel-Enthusiasten Emulatoren verwendet, um klassische (und \/ oder vergessene) Arcade-Spiele aus den 1980er Jahren unter Verwendung des urspr\u00fcnglichen Maschinencodes und der Daten der 1980er Jahre zu spielen, die von einem aktuellen System interpretiert und emuliert werden alte Videospielkonsolen. Ein Hardware-Emulator ist ein Emulator, der die Form eines Hardwareger\u00e4ts hat. Beispiele hierf\u00fcr sind die DOS-kompatiblen Karten, die auf Macintosh-Computern der 90er Jahre installiert sind, z. B. Centris 610 oder Performa 630, mit denen Personal Computer (PC) -Softwareprogramme und FPGA-basierte Hardwareemulatoren ausgef\u00fchrt werden konnten. In einem theoretischen Sinne impliziert die Church-Turing-These, dass (unter der Annahme, dass gen\u00fcgend Speicher verf\u00fcgbar ist) jede Betriebsumgebung in jeder anderen Umgebung emuliert werden kann. In der Praxis kann es jedoch sehr schwierig sein, insbesondere wenn das genaue Verhalten des zu emulierenden Systems nicht dokumentiert ist und durch Reverse Engineering abgeleitet werden muss. Es sagt auch nichts \u00fcber zeitliche Einschr\u00e4nkungen aus; Wenn der Emulator nicht so schnell wie die urspr\u00fcngliche Hardware arbeitet, l\u00e4uft die emulierte Software m\u00f6glicherweise viel langsamer als auf der urspr\u00fcnglichen Hardware und l\u00f6st m\u00f6glicherweise Timer-Interrupts aus, die das Verhalten \u00e4ndern.“Kann ein Commodore 64 MS-DOS emulieren?” Ja, es ist m\u00f6glich f\u00fcr a [Commodore] 64, um einen IBM PC zu emulieren [which uses MS-DOS]in dem gleichen Sinne, wie es m\u00f6glich ist, den Michigansee mit einem Teel\u00f6ffel zu retten.– –Brief an Berechnen! und redaktionelle Antwort, April 1988[1]Table of ContentsIn Erhaltung[edit]Leistungen[edit]Hindernisse[edit]In der Kunst der neuen Medien[edit]Im zuk\u00fcnftigen Systemdesign[edit]Struktur[edit]Speichersubsystem[edit]CPU-Simulator[edit]Ein- \/ Ausgang (E \/ A)[edit]Vergleich mit Simulation[edit]Logiksimulatoren[edit]Funktionssimulatoren[edit]Videospielkonsolen[edit]Terminal[edit]Identit\u00e4tswechsel durch Malware[edit]Rechtsfragen[edit]Vereinigte Staaten[edit]Siehe auch[edit]Verweise[edit]Externe Links[edit]In Erhaltung[edit]Emulation ist eine Strategie zur digitalen Aufbewahrung zur Bek\u00e4mpfung von Veralterung. Die Emulation konzentriert sich auf die Wiederherstellung einer urspr\u00fcnglichen Computerumgebung, die zeitaufw\u00e4ndig und schwierig zu erreichen sein kann, aber aufgrund ihrer F\u00e4higkeit, eine engere Verbindung zur Authentizit\u00e4t des digitalen Objekts aufrechtzuerhalten, wertvoll ist.[2] Die Emulation adressiert die urspr\u00fcngliche Hardware- und Softwareumgebung des digitalen Objekts und erstellt sie auf einem aktuellen Computer neu.[3] Der Emulator erm\u00f6glicht dem Benutzer den Zugriff auf jede Art von Anwendung oder Betriebssystem auf einer aktuellen Plattform, w\u00e4hrend die Software wie in ihrer urspr\u00fcnglichen Umgebung ausgef\u00fchrt wird.[4] Jeffery Rothenberg, ein fr\u00fcher Bef\u00fcrworter der Emulation als Strategie zur digitalen Aufbewahrung, erkl\u00e4rt: “Der ideale Ansatz w\u00fcrde eine einzige erweiterbare, langfristige L\u00f6sung bieten, die ein f\u00fcr alle Mal entworfen und einheitlich, automatisch und synchron angewendet werden kann (z. B. bei jedem Aktualisierungszyklus) auf alle Arten von Dokumenten und Medien “.[5] Er f\u00fchrt weiter aus, dass dies nicht nur f\u00fcr veraltete Systeme gelten sollte, sondern auch f\u00fcr zuk\u00fcnftige unbekannte Systeme aufw\u00e4rtsbeweglich sein sollte.[6] In der Praxis k\u00f6nnte man, wenn eine bestimmte Anwendung in einer neuen Version ver\u00f6ffentlicht wird, anstatt Kompatibilit\u00e4tsprobleme und Migration f\u00fcr jedes in der vorherigen Version dieser Anwendung erstellte digitale Objekt zu beheben, einen Emulator f\u00fcr die Anwendung erstellen, der den Zugriff auf alle digitalen Objekte erm\u00f6glicht Objekte. Leistungen[edit] Basilisk II emuliert einen Macintosh 68k mit Interpretationscode und dynamischer Neukompilierung.Potenziell bessere Grafikqualit\u00e4t als Originalhardware.Potenziell zus\u00e4tzliche Funktionen hatte die urspr\u00fcngliche Hardware nicht.Emulatoren behalten das urspr\u00fcngliche Erscheinungsbild und Verhalten des digitalen Objekts bei, das genauso wichtig ist wie die digitalen Daten selbst.[7]Trotz der urspr\u00fcnglichen Kosten f\u00fcr die Entwicklung eines Emulators kann sich dieser im Laufe der Zeit als kosteng\u00fcnstigere L\u00f6sung erweisen.[8]Reduziert die Arbeitszeit, da die fortlaufende Aufgabe der kontinuierlichen Datenmigration f\u00fcr jedes digitale Objekt fortgesetzt wird. Sobald die Bibliothek vergangener und aktueller Betriebssysteme und Anwendungssoftware in einem Emulator eingerichtet ist, werden dieselben Technologien f\u00fcr jedes Dokument verwendet, das diese Plattformen verwendet.[4]Viele Emulatoren wurden bereits unter der GNU General Public License \u00fcber die Open Source-Umgebung entwickelt und ver\u00f6ffentlicht, was eine umfassende Zusammenarbeit erm\u00f6glicht.[9]Mit Emulatoren kann Software, die nur f\u00fcr ein System verf\u00fcgbar ist, auf einem anderen System verwendet werden. Beispielsweise k\u00f6nnte ein exklusives PlayStation 2-Videospiel mit einem Emulator auf einem PC gespielt werden. Dies ist besonders n\u00fctzlich, wenn das urspr\u00fcngliche System schwer zu bekommen oder mit modernen Ger\u00e4ten nicht kompatibel ist (z. B. k\u00f6nnen alte Videospielkonsolen, die \u00fcber analoge Ausg\u00e4nge angeschlossen werden, m\u00f6glicherweise nicht mit modernen Fernsehger\u00e4ten verbunden werden, die m\u00f6glicherweise nur \u00fcber digitale Eing\u00e4nge verf\u00fcgen).Hindernisse[edit]Geistiges Eigentum – Viele Technologieanbieter haben w\u00e4hrend der Programmentwicklung nicht standardm\u00e4\u00dfige Funktionen implementiert, um ihre Marktnische zu etablieren und gleichzeitig fortlaufende Upgrades durchzuf\u00fchren, um wettbewerbsf\u00e4hig zu bleiben. Dies hat zwar die Technologiebranche vorangebracht und den Marktanteil des Anbieters erh\u00f6ht, die Benutzer sind jedoch aufgrund des propriet\u00e4ren Charakters der Hardware und Software in einem Alptraum der Aufbewahrung mit wenig unterst\u00fctzender Dokumentation verloren gegangen.[10]Das Urheberrecht zum Speichern der Dokumentation und Spezifikationen von propriet\u00e4rer Software und Hardware in einem Emulatormodul ist noch nicht in Kraft.[11]Emulatoren werden h\u00e4ufig als Tool zur Verletzung von Urheberrechten verwendet, da sie es Benutzern erm\u00f6glichen, Videospiele zu spielen, ohne die Konsole kaufen zu m\u00fcssen, und selten versuchen, die Verwendung illegaler Kopien zu verhindern. Dies f\u00fchrt zu einer Reihe von rechtlichen Unsicherheiten in Bezug auf die Emulation und dazu, dass Software so programmiert wird, dass sie die Arbeit verweigert, wenn sie erkennt, dass der Host ein Emulator ist. Insbesondere einige Videospiele werden weiterhin ausgef\u00fchrt, erm\u00f6glichen es dem Spieler jedoch nicht, \u00fcber ein sp\u00e4tes Stadium des Spiels hinaus voranzukommen, was h\u00e4ufig als fehlerhaft oder nur \u00e4u\u00dferst schwierig erscheint.[12][13] Diese Schutzma\u00dfnahmen erschweren das Entwerfen von Emulatoren, da sie genau genug sein m\u00fcssen, um das Ausl\u00f6sen der Schutzfunktionen zu vermeiden, deren Auswirkungen m\u00f6glicherweise nicht offensichtlich sind.Emulatoren erfordern eine bessere Hardware als das urspr\u00fcngliche System.In der Kunst der neuen Medien[edit]Aufgrund der prim\u00e4ren Verwendung digitaler Formate st\u00fctzt sich die Kunst der neuen Medien stark auf die Emulation als Aufbewahrungsstrategie. K\u00fcnstler wie Cory Arcangel sind darauf spezialisiert, veraltete Technologien in ihren Kunstwerken wiederzubeleben, und erkennen die Bedeutung eines dezentralen und deinstitutionalisierten Prozesses f\u00fcr die Erhaltung der digitalen Kultur an. In vielen F\u00e4llen besteht das Ziel der Emulation in der Kunst neuer Medien darin, ein digitales Medium so zu erhalten, dass es unbegrenzt gespeichert und fehlerfrei reproduziert werden kann, sodass keine Abh\u00e4ngigkeit von Hardware besteht, die altert und veraltet ist. Das Paradoxe ist, dass die Emulation und der Emulator f\u00fcr zuk\u00fcnftige Computer erstellt werden m\u00fcssen.[14]Im zuk\u00fcnftigen Systemdesign[edit]Emulationstechniken werden \u00fcblicherweise beim Entwurf und der Entwicklung neuer Systeme verwendet. Es vereinfacht den Entwicklungsprozess, indem es die M\u00f6glichkeit bietet, Fehler im Design zu erkennen, neu zu erstellen und zu reparieren, noch bevor das System tats\u00e4chlich gebaut wird.[15] Dies ist besonders n\u00fctzlich beim Entwurf von Mehrkernsystemen, bei denen Parallelit\u00e4tsfehler ohne die von der virtuellen Hardware bereitgestellte kontrollierte Umgebung nur sehr schwer zu erkennen und zu korrigieren sind.[16] Dies erm\u00f6glicht auch die Softwareentwicklung, bevor die Hardware bereit ist.[17] Dies hilft bei der Validierung von Entwurfsentscheidungen. Die meisten Emulatoren emulieren lediglich eine Hardwarearchitektur. Wenn f\u00fcr die gew\u00fcnschte Software Firmware oder Software des Betriebssystems erforderlich ist, muss diese ebenfalls bereitgestellt werden (und kann selbst emuliert werden). Sowohl das Betriebssystem als auch die Software werden dann vom Emulator interpretiert und nicht von nativer Hardware ausgef\u00fchrt. Abgesehen von diesem Interpreter f\u00fcr die Sprache der emulierten Bin\u00e4rmaschine muss auch andere Hardware (wie Eingabe- oder Ausgabeger\u00e4te) in virtueller Form bereitgestellt werden. Wenn beispielsweise das Schreiben in einen bestimmten Speicherort die Anzeige auf dem Bildschirm beeinflussen soll, muss dies emuliert werden. W\u00e4hrend die Emulation, wenn sie auf das \u00c4u\u00dferste gebracht wird, auf die atomare Ebene sinken k\u00f6nnte und ihre Ausgabe auf einer Simulation der tats\u00e4chlichen Schaltung von einer virtuellen Energiequelle basiert, w\u00e4re dies eine h\u00f6chst ungew\u00f6hnliche L\u00f6sung. Emulatoren stoppen normalerweise bei einer Simulation der dokumentierten Hardwarespezifikationen und der digitalen Logik. Eine ausreichende Emulation einiger Hardwareplattformen erfordert extreme Genauigkeit bis hin zu einzelnen Taktzyklen, nicht dokumentierten Funktionen, unvorhersehbaren analogen Elementen und Implementierungsfehlern. Dies ist insbesondere bei klassischen Heimcomputern wie dem Commodore 64 der Fall, dessen Software h\u00e4ufig von hochentwickelten Low-Level-Programmiertricks abh\u00e4ngt, die von Spielprogrammierern und der “Demoszene” erfunden wurden. Im Gegensatz dazu haben einige andere Plattformen die direkte Hardware-Adressierung nur sehr wenig genutzt, beispielsweise ein Emulator f\u00fcr die PlayStation 4.[18] In diesen F\u00e4llen kann eine einfache Kompatibilit\u00e4tsschicht ausreichen. Dies \u00fcbersetzt Systemaufrufe f\u00fcr das fremde System in Systemaufrufe f\u00fcr das Hostsystem, z. B. die Linux-Kompatibilit\u00e4tsschicht, die auf * BSD verwendet wird, um native Closed-Source-Linux-Software unter FreeBSD, NetBSD und OpenBSD auszuf\u00fchren. W\u00e4hrend beispielsweise der Nintendo 64-Grafikprozessor vollst\u00e4ndig programmierbar war, verwendeten die meisten Spiele eines der wenigen vorgefertigten Programme, die gr\u00f6\u00dftenteils in sich geschlossen waren und \u00fcber FIFO mit dem Spiel kommunizierten. Daher emulieren viele Emulatoren den Grafikprozessor \u00fcberhaupt nicht, sondern interpretieren die von der CPU empfangenen Befehle einfach wie das urspr\u00fcngliche Programm. Entwickler von Software f\u00fcr eingebettete Systeme oder Videospielkonsolen entwerfen ihre Software h\u00e4ufig auf besonders genauen Emulatoren, sogenannten Simulatoren, bevor sie sie auf der realen Hardware ausprobieren. Auf diese Weise kann Software erstellt und getestet werden, bevor die endg\u00fcltige Hardware in gro\u00dfen Mengen vorhanden ist, sodass sie getestet werden kann, ohne sich die Zeit zu nehmen, das zu debuggende Programm auf einer niedrigen Ebene zu kopieren, und ohne die Nebenwirkungen eines Debuggers einzuf\u00fchren. In vielen F\u00e4llen wird der Simulator tats\u00e4chlich von dem Unternehmen hergestellt, das die Hardware bereitstellt, was theoretisch seine Genauigkeit erh\u00f6ht. Mit Emulatoren f\u00fcr mathematische Co-Prozessoren k\u00f6nnen Programme, die mit mathematischen Anweisungen kompiliert wurden, auf Computern ausgef\u00fchrt werden, auf denen der Co-Prozessor nicht installiert ist. Die zus\u00e4tzliche Arbeit der CPU kann das System jedoch verlangsamen. Wenn kein mathematischer Coprozessor auf der CPU installiert ist oder vorhanden ist, f\u00fchrt die CPU beim Ausf\u00fchren eines Co-Prozessor-Befehls einen bestimmten Interrupt aus (Coprozessor nicht verf\u00fcgbar) und ruft die Routinen des mathematischen Emulators auf. Wenn der Befehl erfolgreich emuliert wurde, wird das Programm weiter ausgef\u00fchrt.Struktur[edit]In der Regel ist ein Emulator in Module unterteilt, die in etwa den Subsystemen des emulierten Computers entsprechen. Meistens besteht ein Emulator aus folgenden Modulen:ein CPU-Emulator oder ein CPU-Simulator (die beiden Begriffe sind in diesem Fall meistens austauschbar), es sei denn, das zu emulierende Ziel hat dieselbe CPU-Architektur wie der Host. In diesem Fall kann stattdessen eine virtuelle Maschinenschicht verwendet werdenein Speichersubsystemmodulverschiedene Emulatoren f\u00fcr Ein- \/ Ausgabeger\u00e4te (E \/ A)Busse werden h\u00e4ufig weder aus Gr\u00fcnden der Leistung noch aus Gr\u00fcnden der Einfachheit emuliert, und virtuelle Peripherieger\u00e4te kommunizieren direkt mit der CPU oder dem Speichersubsystem.Speichersubsystem[edit]Es ist m\u00f6glich, die Emulation des Speichersubsystems auf einfach ein Array von Elementen zu reduzieren, die jeweils die Gr\u00f6\u00dfe eines emulierten Wortes haben. Dieses Modell schl\u00e4gt jedoch sehr schnell fehl, sobald ein Speicherort im logischen Speicher des Computers nicht mit dem physischen Speicher \u00fcbereinstimmt. Dies ist eindeutig der Fall, wenn die emulierte Hardware eine erweiterte Speicherverwaltung erm\u00f6glicht (in diesem Fall kann die MMU-Logik in den Speicheremulator eingebettet, zu einem eigenen Modul gemacht oder manchmal in den CPU-Simulator integriert werden). Selbst wenn der emulierte Computer keine MMU enth\u00e4lt, gibt es normalerweise andere Faktoren, die die \u00c4quivalenz zwischen logischem und physischem Speicher aufheben: Viele (wenn nicht die meisten) Architekturen bieten speicherabgebildete E \/ A; selbst diejenigen, denen nicht oft ein Block eines logischen Speichers auf den ROM abgebildet ist, was bedeutet, dass das Speicherarray-Modul verworfen werden muss, wenn die schreibgesch\u00fctzte Natur des ROM emuliert werden soll. Funktionen wie Bankwechsel oder Segmentierung k\u00f6nnen auch die Speicheremulation erschweren. Infolgedessen implementieren die meisten Emulatoren mindestens zwei Prozeduren zum Schreiben und Lesen aus dem logischen Speicher, und es ist die Pflicht dieser Prozeduren, jeden Zugriff auf den richtigen Ort des richtigen Objekts abzubilden.Auf einem Basislimit-Adressierungssystem, bei dem Speicher von Adresse 0 zu adressieren ROMSIZE-1 ist ein Nur-Lese-Speicher, w\u00e4hrend der Rest RAM ist, w\u00e4re etwas in der Art der folgenden Prozeduren typisch:void WriteMemory(word Address, word Value) { word RealAddress; RealAddress = Address + BaseRegister; if ((RealAddress ROMSIZE)) { Memory[RealAddress] = Value; } else { RaiseInterrupt(INT_SEGFAULT); }}word ReadMemory(word Address) { word RealAddress; RealAddress=Address+BaseRegister; if (RealAddress (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki20\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki20\/2021\/01\/01\/emulator-wikipedia\/#breadcrumbitem","name":"Emulator – Wikipedia"}}]}]