598 Stimmen

Simulator oder Emulator? Was ist der Unterschied?

Obwohl ich im Allgemeinen verstehe, was Simulation und Emulation bedeuten, werde ich fast immer verwirrt darüber. Nehmen wir an, ich erstelle ein Stück Software, das vorhandene Hardware/Software imitiert, wie sollte ich es nennen? Ein Simulator oder ein Emulator?

Kann mir jemand den Unterschied in Bezug auf die Programmierung erklären?

Bonus: Was ist der Unterschied in Englisch zwischen diesen beiden Begriffen? (Entschuldigung, ich bin kein Muttersprachler :))

14voto

पवन Punkte 3074

Um den Unterschied zwischen einem Simulator und einem Emulator zu verstehen, denken Sie daran, dass ein Simulator versucht, das Verhalten eines echten Geräts zu imitieren. Zum Beispiel simuliert der iOS Simulator das echte Verhalten eines tatsächlichen iPhone/iPad-Geräts. Der Simulator selbst verwendet jedoch die verschiedenen auf dem Mac installierten Bibliotheken (wie z.B. QuickTime) zur Durchführung seiner Darstellung, so dass der Effekt genauso aussieht wie bei einem echten iPhone. Darüber hinaus werden Anwendungen, die auf dem Simulator getestet werden, in x86-Code kompiliert, der vom Simulator verstanden wird. Ein echtes iPhone-Gerät hingegen verwendet ARM-basierten Code.

Im Gegensatz dazu emuliert ein Emulator die Funktionsweise eines echten Geräts. Anwendungen, die auf einem Emulator getestet werden, werden in den tatsächlichen Bytecode kompiliert, der vom realen Gerät verwendet wird. Der Emulator führt die Anwendung aus, indem er den Bytecode in eine Form übersetzt, die vom Hostcomputer, auf dem der Emulator läuft, ausgeführt werden kann.

Um den feinen Unterschied zwischen Simulation und Emulation zu verstehen, stellen Sie sich vor, Sie versuchen einem Kind zu erklären, dass es gefährlich ist, mit Messern zu spielen. Um dies zu simulieren, tun Sie so, als ob Sie sich mit einem Messer schneiden und stöhnen vor Schmerz. Um dies zu emulieren, schneiden Sie sich tatsächlich.

8 Stimmen

Bitte versucht das nicht zu Hause Kinder :D

10voto

Pontus Gagge Punkte 16933

In etwa normaler Ausdrucksweise: Wenn Ihre Software alles kann, was das imitierte System kann, handelt es sich um einen Emulator. Wenn sie nur die Ergebnisse eines Systems (IT oder anderweitig) annähert, handelt es sich um einen Simulator.

9voto

cdiggins Punkte 16400

Ein Emulator ist ein Modell eines Systems, das jede gültige Eingabe akzeptiert, die das emulierte System akzeptieren würde, und dasselbe Ergebnis oder Resultat produziert. Also ist deine Software nur dann ein Emulator, wenn sie das Verhalten des emulierten Systems genau reproduziert.

0 Stimmen

Danke. Ich denke, dies ist eine sehr präzise Definition von Emulation. Also ist Wine zum Beispiel ein Simulator, weil er nicht unbedingt die gleiche präzise Ausgabe liefert, die in Windows definiert ist?

6 Stimmen

Achte darauf, dass du versuchst, WINE nicht in einen Emulator oder Simulator zu zwängen. WINE ist eine Kompatibilitätsschicht, die Binärdateien von einem System auf der binären API-Schicht eines anderen Systems ausführen lässt. Man könnte es einen Adapter nennen. Ein Simulator ist vielleicht auch eine akzeptable Bezeichnung, aber näher dran als ein Emulator ist er auch nicht wirklich.

0 Stimmen

WINE ist Emulation, in diesem Spektrum. Es hat das äußere Erscheinungsbild der Verknüpfung von Windows-Binärdateien, aber wenn Sie auf die internen Teile schauen würden, würden Sie nichts über Windows lernen.

9voto

Jörg W Mittag Punkte 349574

Vor einigen Jahren habe ich einen sehr kurzen Leitspruch entwickelt, der meiner Meinung nach die Essenz des Unterschieds ziemlich gut einfängt:

Ein Simulator ist ein Emulator auf einer Mission.

Damit meine ich, dass man einen Emulator verwendet, wenn man das echte Ding nicht verwenden kann, und man einen Simulator verwendet, wenn man das echte Ding nicht verwenden kann und etwas über es herausfinden will.

8voto

Vishnu Vivek Punkte 1309

Einfache Erklärung.

Wenn Sie Ihren PC (mit Windows) in einen Mac umwandeln möchten, können Sie eines der folgenden Dinge tun:

(1) Sie können einfach ein Mac-Design auf Ihrem Windows installieren. So fühlt sich Ihr PC mehr wie ein Mac an, aber Sie können tatsächlich keine Mac-Programme ausführen. (SIMULATION)

oder

(2) Sie können Ihren PC so programmieren, dass er wie ein Mac läuft (ich bin mir nicht sicher, ob das möglich ist :P ). Jetzt können Sie sogar erfolgreich Mac-Programme ausführen und dieselbe Ausgabe wie auf einem Mac erwarten. (EMULATION)

Im ersten Fall können Sie zwar Mac erleben, aber Sie können nicht dieselbe Ausgabe wie auf einem Mac erwarten.
Im zweiten Fall können Sie dieselbe Ausgabe wie auf einem Mac erwarten, aber die Tatsache bleibt bestehen, dass es nur ein PC ist.

4 Stimmen

Dies ist sowohl einfach als auch völlig falsch. (2) kommt dem Emulieren nahe, aber (1) ist weder eine Emulation noch eine Simulation.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X