Simulatore o emulatore? Qual è la differenza?


523

Mentre capisco cosa significano simulazione ed emulazione in generale, quasi sempre mi confondo su di loro. Supponiamo che crei un software che imita l'hardware / software esistente, come dovrei chiamarlo? Un simulatore o un emulatore?

Qualcuno potrebbe spiegare la differenza in termini di programmazione?

Bonus: qual è la differenza in inglese tra questi due termini? (Mi dispiace, non sono un madrelingua :))


3
Nello sviluppo di app mobili, iPhone ha un simulatore mentre Android ha un emulatore. Altro qui - stackoverflow.com/questions/4544588/…
Vishnu Haridas

1
Ho trovato la versione di Wikipedia su questo informativo: en.wikipedia.org/wiki/Emulator#Emulation_versus_simulation
AmigoNico

questo potrebbe anche essere utile per spiegare questo: programmers.stackexchange.com/questions/134746/…
Hakan Fıstık

Risposte:


463

L'emulazione è il processo di imitazione del comportamento osservabile esternamente per abbinare un obiettivo esistente. Lo stato interno del meccanismo di emulazione non deve riflettere accuratamente lo stato interno del bersaglio che sta emulando.

La simulazione, d'altra parte, implica la modellazione dello stato sottostante del bersaglio. Il risultato finale di una buona simulazione è che il modello di simulazione emulerà l'obiettivo che sta simulando.

Idealmente, dovresti essere in grado di esaminare la simulazione e osservare le proprietà che vedresti anche se guardassi al bersaglio originale. In pratica, potrebbero esserci delle scorciatoie per la simulazione per motivi di prestazioni - vale a dire, alcuni aspetti interni della simulazione potrebbero effettivamente essere un'emulazione.

MAME è un emulatore di giochi arcade; Hyperterm è un emulatore di terminale (non molto buono). Non è necessario modellare la macchina arcade o un terminale in dettaglio per ottenere il comportamento emulato desiderato.

Flight Simulator è un simulatore; SPICE è un simulatore elettronico. Modellano il più possibile ogni dettaglio del bersaglio per rappresentare ciò che il bersaglio fa nella realtà.

EDIT: Altre risposte hanno sottolineato che l'obiettivo di un'emulazione è di sostituire l'oggetto che sta emulando. Questo è un punto importante. L'attenzione di una simulazione è più sulla modellazione dello stato interno del bersaglio - e la simulazione non porta necessariamente all'emulazione. In particolare, una simulazione può essere eseguita molto più lentamente del tempo reale. SPICE, ad esempio, non può sostituire un circuito elettronico reale (anche se si presume che ci fosse un qualche tipo di dispositivo magico che interfaccia perfettamente i circuiti elettrici con una simulazione SPICE.) Una simulazione La simulazione non porta sempre all'emulazione -


33
Con questa definizione, è quindi impossibile simulare il mondo reale nel software? Non penso che possiamo rappresentare accuratamente lo stato sottostante del mondo reale - emulare solo proprietà osservabili ... per ora.
Dolph,

8
Non sono d'accordo con questo "modello [Simulazioni] il più possibile ogni dettaglio del bersaglio per rappresentare ciò che il bersaglio fa nella realtà." Le simulazioni hanno il modello del sistema target con dettagli sufficienti in base allo scopo della simulazione. Ad esempio, Flight Simulator probabilmente non modella i pesci nel mare perché è inutile ai fini della simulazione.
Hamdi,

18
Esattamente la risposta opposta qui: stackoverflow.com/questions/2174638/...
smwikipedia

3
Sembra che la maggior parte delle persone usi queste parole nell'altro modo, come in: la simulazione generalmente avviene ad un livello superiore rispetto all'emulazione (nonostante entrambe le parole vengano usate raramente insieme in un dato contesto). Vedi ad esempio l'emulatore Android rispetto al simulatore Apple. Propongo di cambiare le parole in questa risposta per rimanere coerenti con la maggior parte delle definizioni e per evitare confusione per i futuri visitatori.
aviatore

1
Penso che questa risposta abbia cambiato i 2 termini. Tutte le altre fonti lo spiegano come: simulazione = comportamento duplicato; emulazione = duplicati meccanismi interni. Il che porta alla seguente conclusione: sono entrambi termini pazzeschi.
metalim,

351

Se un simulatore di volo potesse trasportarti da A a B, allora sarebbe un emulatore di volo.

Un emulatore può sostituire l'originale per un uso reale .
Un PC virtuale emula un PC.

Un simulatore è un modello per lo studio e l'analisi.

Un emulatore dovrà sempre operare in tempo reale. Per un simulatore che non è sempre il caso. Una simulazione geologica potrebbe fare 1000 anni / secondo o più.


6
@Henk Il tuo esempio di "cockpit" è fantastico anche se l'ho capito dopo aver letto la risposta di Toybuilder. Grazie :)
AraK,

1
Il PC virtuale non emula, si virtualizza. QEmu, d'altra parte, fa emulare. In entrambi i casi, il nome dovrebbe essere un suggerimento.
Jörg W Mittag,

24
Penso che sarebbe sicuro dire che Virtual PC emula un PC. COME emula il PC è attraverso la virtualizzazione, ma questo è più un dettaglio di implementazione. Potresti sostenere che la virtualizzazione dell'hardware è un superset di emulazione, in quanto può fornire supporto accelerato alla CPU, accesso esclusivo al dispositivo hardware, ecc.
Lee B,

Aspetta, Virtual PC non fornisce praticamente una replica 1: 1 di un PC reale? (Voglio dire, la virtualizzazione del sistema in generale non dovrebbe solo simulare il comportamento esterno ma praticamente ogni angolo di un sistema, a differenza della virtualizzazione delle applicazioni in cui, ad esempio, lo stack di rete non viene ricreato).
Camilo Martin,

1
Dove posso trovare detto emulatore di volo?
Jerry Dodge,

175

Simulazione = Per analisi e studio

Emulazione = Da utilizzare come sostituto

Un simulatore è un ambiente che modella ma un emulatore è uno che replica l'utilizzo come sul dispositivo o sul sistema originale.

Il simulatore imita l'attività di qualcosa che sta simulando. "Appare" (molto può andare con questo "Appare", a seconda del contesto) per essere lo stesso della cosa simulata. Ad esempio, il simulatore di volo "sembra" essere un vero volo per l'utente, anche se non ti trasporta da un luogo all'altro.

L'emulatore, d'altra parte, in realtà " fa " ciò che fa l'emulazione, e nel farlo anche " sembra fare la stessa cosa ". Un emulatore può utilizzare diversi set di protocolli per imitare l'oggetto da emulare, ma il risultato / risultato è sempre lo stesso dell'oggetto originale. Ad esempio, EMU8086 emula il microprocessore 8086 sul tuo computer, che ovviamente non è in esecuzione su 8086 (= protocolli diversi ), ma l'output che fornisce è ciò che un vero 8086 darebbe.


9
La risposta più chiara che abbia mai visto. Per me, potrebbe essere migliorato solo omettendo la frase aggiuntiva o integrandola nelle tue eccellenti definizioni contrastanti :-D
doughgle

40

È una differenza nel focus. Gli emulatori 1 si concentrano sulla ricostruzione del comportamento di un sistema, senza considerare il funzionamento interno del sistema. I simulatori 2 si concentrano sulla modellazione dei componenti di un sistema. Usi un emulatore quando ti preoccupi principalmente di ciò che fa un sistema e un simulatore quando ti preoccupi di come lo fa.

Per quanto riguarda i loro significati inglesi generali, l'emulazione è "lo sforzo di eguagliare o eccellere un altro in qualità o azioni ", mentre la simulazione è " modellare , replicare, duplicare il comportamento, l'aspetto o le proprietà di". Non molta differenza. L'emulazione proviene da emulo , "sforzarsi, rivaleggiare", ed è correlato a "imitare" e "immagine", il che suggerisce una somiglianza con la leva della superficie. "Simulazione" deriva da similis "come", così come la parola "simile", che forse suggerisce una congruenza più profonda.

Riferimenti:

  1. Wikipedia: emulatore
  2. Wikipedia: Simulazione al computer
  3. Wikizionario: emulazione
  4. Wikizionario: simulazione
  5. Etimologia online: emulazione
  6. Etimologia online: simulazione

La tua risposta è diversa dalle altre. Virtual PC è un simulatore o un emulatore secondo te?
Mikaël Mayer il

@ MikaëlMayer: molte delle risposte sono diverse da quelle degli altri, con solo alcune simili. Considererei la mia risposta equivalente (in quanto le cose sarebbero classificate allo stesso modo) di Toybuilder e cdiggens, e compatibile con quella di Jörg. È contrario solo a Ponto e Aeolai.
uscirà il

@ MikaëlMayer Virtual PC è un emulatore. Può fare tutto ciò che un vero PC può fare.
Un utente il

1
@Pri Vedi la risposta di questo thread riguardante Virtual PC. È entrambi, dipende dalla prospettiva. Ad esempio, puoi ancora dire che è una simulazione perché non può riscaldarsi come fa un vero computer.
Mikaël Mayer,

Grazie per essere tornato @ MikaëlMayer, ma ad essere sinceri, alcune volte non possiamo effettivamente differenziare se un sistema è un emulatore o un simulatore. Inizia una buona serie di dibattiti. Spero di avere ragione! Pochi derivano la differenza in base all'utilizzo, al significato inglese, alla funzionalità, alla convenienza. Ma quando applico tutte le risposte nel mio caso di studio, non è una cosa facile
Un utente il

19

Non credo che l'emulatore e il simulatore possano essere confrontati. Entrambi imitano qualcosa, ma non fanno parte dello stesso scopo del ragionamento, non vengono utilizzati nello stesso contesto.

In breve: un emulatore è progettato per copiare alcune funzionalità dell'originale e può persino sostituirlo nell'ambiente reale. Un simulatore non è progettato per copiare le caratteristiche dell'originale, ma solo per apparire simile all'originale agli esseri umani. Senza le caratteristiche dell'originale, il simulatore non può sostituirlo nell'ambiente reale.

Un emulatore è un dispositivo che imita qualcosa di abbastanza vicino in modo che possa essere sostituito alla cosa reale. Ad esempio, vuoi che un circuito funzioni come un circuito ROM (sola lettura di memoria), ma vuoi anche regolare il contenuto fino a quando non è quello che desideri. Utilizzerai un emulatore ROM, una scatola nera (probabilmente basata sulla CPU) con interfacce fisiche ed elettriche compatibili con la ROM che desideri emulare. L'emulatore verrà collegato al dispositivo al posto della ROM reale. La scheda madre non vedrà alcuna differenza durante il lavoro, ma sarai in grado di modificare facilmente il contenuto della ROM emulata. Detto altrimenti l'emulatore funzionerà esattamente come la cosa reale nel suo contesto della scheda madre (forse un po 'più lento a causa del modello interno reale) ma ci saranno funzioni aggiuntive (come la riscrittura) visibili solo al progettista, fuori dal contesto della scheda madre . Quindi la definizione dell'emulatore sarebbe: qualcosa che imita l'originale, ha tutte le sue caratteristiche funzionali,

Un simulatore viene utilizzato in un altro contesto di pensiero, ad esempio un simulatore aereo, un simulatore di auto, ecc. La simulazione si occuperà solo di alcuni aspetti della cosa reale, di solito quelli relativi a come un essere umano lo percepirà e lo controllerà. Il simulatore non eseguirà le funzioni del materiale reale e non può essere sostituito da esso. Il simulatore aereo non volerà o trasporterà qualcuno, non è affatto il suo scopo. Il simulatore non ha lo scopo di funzionare, ma di apparire al pilota in qualche modo simile alla cosa reale per scopi diversi da quelli normali, ad esempio per consentire l'addestramento al suolo (anche in situazioni insolite come guasti a tutti i motori). Quindi la definizione del simulatore sarebbe: qualcosa che può sembrare umano, in qualche misura, come l'originale, ma non può sostituirlo per un uso effettivo. Inoltre, il pilota saprà che il simulatore è un simulatore.

Non penso che vedremo alcun simulatore ROM, perché la ROM non interagisce con gli esseri umani, né vedremo alcun emulatore aereo, perché gli aerei non possono avere un sostituto che svolge le stesse funzioni nel mondo reale.

A mio avviso, il modello all'interno di un emulatore o di un simulatore può essere qualsiasi cosa e non deve essere simile al modello dell'originale. Un modello di emulatore ROM sarà probabilmente un software anziché un hardware, MS Flight Simulator non può essere più software di quanto non sia.

Questo confronto di entrambi i termini contraddicherà la risposta attualmente selezionata (da Toybuilder) che pone la differenza sul modello interno, mentre il mio suggerimento è che la differenza è se il falso può o non può essere utilizzato per svolgere la funzione effettiva nel mondo reale ( in qualche misura accettata, in effetti).

Si noti che il simulatore di piano dovrà anche simulare la terra, il sole, il vento, ecc., Che non fanno parte del piano, quindi un simulatore di piano dovrà imitare alcuni aspetti del piano, nonché l'ambiente del aereo perché non viene utilizzato in questo ambiente reale, ma in una sala di addestramento.

Questa è una grande differenza con l'emulatore che emula solo l'originale e il suo scopo è quello di essere utilizzato nell'ambiente dell'originale senza necessità di emularlo. Tornando al contesto dell'aereo ... quale potrebbe essere un emulatore dell'aereo? Forse un treno che collegherà due aeroporti - in realtà due gradini in aereo - che trasporta passeggeri, con hostess a bordo, interni di auto che sembrano una vera cabina dell'aereo, e con il capitano che dice "signore e signori la nostra altitudine è di 10 km e la temperatura a destinazione è di 24 ° C ". Il suo vantaggio è difficile da vedere, ronzio ...

In conclusione, l'emulatore è una cosa reale destinata a funzionare, il simulatore è un falso destinato a ingannare l'utente.


1
La frase "emulatore ROM" mi ricorda le console di videogiochi virtuali.
Joe Z.

11

Spiegazione semplice.

Se vuoi convertire il tuo PC (che esegue Windows) in Mac, puoi eseguire una di queste due operazioni:

(1) Puoi semplicemente installare un tema Mac sul tuo Windows. Quindi, il tuo PC sembra più un Mac, ma in realtà non puoi eseguire alcun programma per Mac.(SIMULATION)

(o)

(2) Puoi programmare il tuo PC in modo che funzioni come Mac (non sono sicuro che sia possibile: P). Ora puoi persino eseguire con successo i programmi Mac e aspettarti lo stesso output che su Mac.(EMULATION)

Nel primo caso, puoi provare Mac, ma non puoi aspettarti lo stesso output che su Mac.
Nel secondo caso, puoi aspettarti lo stesso output di un Mac, ma resta il fatto che si tratta solo di un PC.


3
Questo è sia semplice che completamente sbagliato. (2) è vicino all'emulazione, ma (1) non è né emulazione né simulazione.
Nick Bastin,

10

Per comprendere la differenza tra un simulatore e un emulatore, tenere presente che un simulatore tenta di imitare il comportamento di un dispositivo reale. Ad esempio, nel caso del simulatore iOS, simula il comportamento reale di un dispositivo iPhone / iPad reale. Tuttavia, il Simulatore stesso utilizza le varie librerie installate sul Mac (come QuickTime) per eseguire il rendering in modo che l'effetto appaia uguale a un iPhone reale. Inoltre, le applicazioni testate sul simulatore sono compilate in codice x86, che è il codice byte compreso dal simulatore. Un vero dispositivo iPhone, al contrario, utilizza il codice basato su ARM.

Al contrario, un emulatore emula il funzionamento di un dispositivo reale. Le applicazioni testate su un emulatore vengono compilate nel codice byte effettivo utilizzato dal dispositivo reale. L'emulatore esegue l'applicazione traducendo il codice byte in un modulo che può essere eseguito dal computer host che esegue l'emulatore.

Per capire la sottile differenza tra simulazione ed emulazione, immagina di provare a convincere un bambino che giocare con i coltelli è pericoloso. Per simulare questo, fai finta di tagliarti con un coltello e gemere di dolore. Per emularlo, ti sei davvero tagliato.


7
Non provarlo a casa dei bambini: D
Gearoid Murphy,

9

Un emulatore è un modello di un sistema che accetta qualsiasi input valido che il sistema emulato accetterebbe e produrrà lo stesso output o risultato. Quindi il tuo software è un emulatore, solo se riproduce esattamente il comportamento del sistema emulato.


Grazie. Penso che questa sia una definizione molto precisa di emulazione. Quindi, ad esempio, Wine è un simulatore perché non fornisce necessariamente lo stesso preciso output definito in Windows?
AraK,

6
Fai attenzione a provare a calzare WINE in un / o di un emulatore o simulatore. WINE è un livello di compatibilità, che esegue i binari di un sistema sul livello API binario di un altro sistema. Potresti chiamarlo un adattatore. Suppongo che anche il simulatore non sia un cattivo modo di capirlo, ma non è molto più vicino dell'emulatore.
Lee B,

WINE è emulazione, in questo spettro. Ha l'aspetto esteriore del collegamento dei file binari di Windows, ma se dovessi guardare gli interni non impareresti nulla su Windows.
Nick Bastin,

9

Alcuni anni fa mi è venuto in mente un breve adagio che, credo, cattura abbastanza bene l'essenza della differenza:

Un simulatore è un emulatore in missione.

Con ciò intendo dire che usi un emulatore quando non puoi usare la cosa reale, e usi un simulatore quando non puoi usare la cosa reale e vuoi scoprire qualcosa al riguardo .


8

In un linguaggio più o meno normale: se il tuo software può fare tutto ciò che il sistema imitato può fare, è un emulatore. Se si avvicina solo ai risultati di un sistema (IT o altro), è un simulatore.


5

Simulatore: è simile all'interprete. cioè esegue effettivamente il codice reale riga per riga per imitare il comportamento

Emulatore: è un eseguibile simile. cioè prende il codice compilato e lo esegue.


4

Un emulatore è un'alternativa al sistema reale ma un simulatore viene utilizzato per ottimizzare, comprendere e stimare il sistema reale.


3

La distinzione tra i due termini è un po 'confusa. Proveniente da un mondo in cui gli "Emulatori" sono componenti hardware che consentono di eseguire il debug di sistemi integrati. E ricordo i prodotti che ti hanno permesso di avere le funzionalità ICE (In Circuit Emulation) per il debug di una piattaforma PC, trovo che l'uso del termine "Emulazione" sia un po 'improprio per un software che SIMULA il comportamento di un componente hardware.

La mia giustificazione per l'uso corrente del termine è Emulazione è che può "aumentare" la funzionalità, e riguarda solo un'approssimazione "ragionevole" del comportamento del sistema.

ICE: (In Circuit Emulation) Un pezzo di hardware che è collegato a una scheda al posto del processore reale. Consente di eseguire il sistema come se fosse presente il processore effettivo. In genere questi hanno una variante del processore su di essi per eseguire effettivamente il software con la logica della colla per consentire all'utente di interrompere l'esecuzione e il singolo passaggio sotto il controllo hardware. Alcuni fornirebbero anche funzionalità di registrazione. I più moderni sistemi di sviluppo di processori hanno sostituito l'emulazione di tipo ICE con l'emulazione JTAG, in cui JTAG comunica con il processore tramite un collegamento seriale per scopi speciali e tutte le esecuzioni sono eseguite dal processore montato sulla scheda.

Software EMULATOR: un emulatore 0x86 si preoccupa solo di essere in grado di eseguire il linguaggio assembly 0x86, non fornendo un modello comportamentale ciclo per ciclo accurato di un processore SPECIFICO 0x86. Bochs ne è un esempio. QEMU fa questo, ma permette anche la "virtualizzazione" usando speciali moduli del kernel.

SIMULATORE: Texas Instruments fornisce un modello comportamentale CICLO ACCURATO di lì processori per lo sviluppo di software che intende essere una SIMULAZIONE accurata del comportamento di core di processore SPECIFIC che gli sviluppatori devono utilizzare prima di disporre di hardware funzionante.

Funzionalità di potenziamento del software EMULATOR: BLEEM non solo ti consentiva di eseguire il software Playstation, ma consentiva anche di visualizzare il display con una risoluzione più elevata di quella che la Playstation era in grado di fornire, e sfruttava anche le funzionalità più avanzate delle GPU disponibili. (vale a dire una migliore fusione e levigatura delle trame.)


3

Entrambi sono modelli di un oggetto di cui hai dei mezzi per controllare gli input e osservare gli output da.

La differenza chiave è che:

  • Con un emulatore , si desidera che l'output corrisponda esattamente ciò che l'oggetto che stai emulando produrrebbe.
  • Con un simulatore , si desidera che determinate proprietà dell'output siano simili a quelle che l'oggetto produrrebbe.

Lasciatemi fare un esempio: supponiamo che vogliate fare alcuni test di sistema per vedere come l'aggiunta di un nuovo sensore (come un termometro) a un sistema influenzerebbe il sistema. Sai che il termometro invia un messaggio 8 volte al secondo contenente la sua misurazione.

Simulazione: se non si dispone ancora del termometro, ma si desidera verificare che questa frequenza di messaggi non sovraccarichi il sistema, è possibile simulare il sensore collegando un'unità che invia un numero casuale 8 volte al secondo. È possibile eseguire qualsiasi test che non si basa sul valore effettivo inviato dal sensore.

Emulazione: supponiamo di avere un termometro molto costoso che misura a 0,001 C e che si desidera vedere se è possibile cavarsela con un termometro più economico che misura solo allo 0,5 C. È possibile emulare il termometro più economico utilizzando un termometro costoso e quindi arrotondare la lettura allo 0,5 C più vicino ed eseguire test che si basano sui valori di temperatura.

Si noti che le simulazioni possono essere utilizzate anche per la previsione o la previsione del comportamento. Le simulazioni di analisi agli elementi finiti sono utilizzate in molte applicazioni, tra cui previsioni meteorologiche e gallerie del vento virtuali.

Le definizioni dei termini:

  • emulazione: superare o abbinare esattamente
  • simula - imita nell'aspetto o nel carattere

Nota: questo è molto simile alla risposta a una domanda che è stata contrassegnata come una copia di questa ( stackoverflow.com/questions/2174638/… ). Ho aggiunto una definizione dei termini (richiesto nella domanda ma non ancora risposto) e ho anche aggiunto alcune informazioni sugli usi per la simulazione (analisi agli elementi finiti) per qualcosa di più che imitare un dispositivo.
Jay Elston,

2

A questa domanda è probabilmente meglio rispondere dando un'occhiata alla pratica storica.

In passato, ho visto emulatori di console di gioco su PC per PlayStation e SEGA.

I simulatori sono all'ordine del giorno quando si riferiscono a software che cercano di imitare le azioni della vita reale, come guidare o volare. Gran Turismo e Microsoft Flight Simulator vengono in mente come classici esempi di simulatori.

Per quanto riguarda la differenza linguistica, l'emulazione di solito si riferisce all'azione di copiare le caratteristiche o i comportamenti lodevoli di qualcuno (o qualcosa). L'emulazione è distinta dall'imitazione, in cui una persona viene copiata ai fini della beffa.

Il significato linguistico del verbo "simulazione" è essenzialmente fingere o imitare qualcuno o qualcosa.


2

Nell'informatica sia una simulazione che un'emulazione producono gli stessi output, dagli stessi input, del sistema originale; Tuttavia, anche un'emulazione utilizza gli stessi processi per realizzarla ed è realizzata con gli stessi materiali . Una simulazione utilizza processi diversi dal sistema originale. Vale anche la pena notare il termine replicazione, che è l'intermedio dei due - usando gli stessi processi ma essendo fatto di un materiale diverso.

Quindi, se voglio eseguire il mio vecchio gioco Super Mario Bros sul mio PC, uso un emulatore SNES , perché sta usando lo stesso o simile codice (processi) del computer per eseguire il gioco e utilizza materiali uguali o simili (chip di silicio) . Tuttavia, se voglio far volare un jet Boeing 747 sul mio PC, uso un simulatore di volo perché utilizza processi completamente diversi dall'originale (non ci sono ali, alzate o aerodinamica reali!).

Ecco le esatte definizioni tratte da un glossario informatico:

Una simulazione è un modello di un sistema che acquisisce le connessioni funzionali tra input e output del sistema, ma senza necessariamente basarsi su processi uguali o simili a quelli del sistema stesso.

Una replica è un modello di un sistema che acquisisce le connessioni funzionali tra input e output del sistema e si basa su processi uguali o simili a quelli del sistema stesso.

Un'emulazione è un modello di alcuni sistemi che acquisisce le connessioni funzionali tra ingressi e uscite del sistema, sulla base di processi uguali o simili a quelli di quel sistema e costruiti con gli stessi materiali di quel sistema .

Riferimento: The Open University, M366 Glossary 1.1, 2007


2

Una simulazione è un sistema che si comporta in modo simile a qualcos'altro, ma è implementato in un modo completamente diverso. Fornisce il comportamento di base di un sistema ma potrebbe non necessariamente rispettare tutte le regole del sistema simulato. È lì per darti un'idea di come funziona qualcosa.

Un'emulazione è un sistema che si comporta esattamente come qualcos'altro e rispetta tutte le regole del sistema che viene emulato. Si tratta effettivamente di una replica completa di un altro sistema, fino a essere binariamente compatibile con gli input e gli output del sistema emulato, ma operando in un ambiente diverso dall'ambiente del sistema emulato originale. Le regole sono fisse e non possono essere modificate o il sistema non riesce.


2

Le definizioni delle parole descrivono la differenza nel modo migliore. Una ricerca su Google fornisce le seguenti definizioni di simulazione ed emulazione:

simulare imitare l'aspetto o il carattere di.

emula la corrispondenza o il superamento (una persona o un risultato), in genere per imitazione.

Una simulazione imita un sistema. Un'emulazione simula un sistema così bene che potrebbe sostituirlo o addirittura superarlo.

Nell'informatica, un'emulazione sarebbe un calo in sostituzione del sistema che sta emulando. Spesso sovraperformerà anche il sistema che imita. Ad esempio, gli emulatori per console di gioco di solito apportano miglioramenti come una maggiore compatibilità hardware, migliori prestazioni e una migliore qualità audio / video.

Le simulazioni, d'altra parte, sono limitate dal fatto che sono modelli. Sono il miglior tentativo di imitare un sistema, ma non sostituzioni per esso. Ci sono emulatori hardware perché l'hardware può essere imitato e sarebbe difficile dire la differenza. Non esiste un emulatore agricolo perché non esiste un'emulazione che possa sostituire l'agricoltura effettiva. Possiamo solo simulare un modello di agricoltura per ottenere informazioni su come coltivare meglio.


1

Un Virtual PC tenta di emulare un computer, dal punto di vista di un programmatore , ma allo stesso tempo simula un computer dal punto di vista di un ingegnere elettrico .


0

Emulator:

Considera una situazione che conosci solo l'inglese e sei in Cina. Per interagire con una persona cinese hai bisogno di un traduttore. Ora, il ruolo del traduttore è che cercherà input da te in inglese e si convertirà in cinese e fornirà quell'input alla persona cinese e riceverà risposta dal cinese e si convertirà in inglese e ti darà l'output in inglese. Ora quel traduttore e cinese è l'emulatore. Entrambe le combinazioni forniranno funzionalità simili come se si stesse comunicando con la persona inglese. Quindi l'hardware potrebbe essere diverso ma la funzionalità sarà la stessa.

Simulatore:

Non posso dare un esempio migliore di SPICE o del simulatore di volo. Entrambi sostituiranno il comportamento dei componenti hardware con il software o il modello matematico che si comporterà in modo simile all'hardware.

Alla fine dipende dal contesto quale soluzione si adatta meglio alle esigenze del progetto.


0

Il simulatore è qualcosa di più ampio dell'emulatore e sembra che la dualità di questi termini sia ripensata nei post precedenti.

Emulatore

Le persone hanno deciso di utilizzare una nuova emulazione di parole nel "mondo dei computer" quando hanno iniziato a sostituire alcune parti hardware del sistema esistente in modo semplice - imitando il loro comportamento e basandosi sulla natura computazionale per essere sicuri di non rompere qualcosa e lasciare tutto nel stato equivalente. Quindi abbiamo emulato il pezzo di questo! (e il tutto funziona ancora come prima)

Emulatore di solito usato in senso stretto nell'area digitale come sostituzione e virtualizzazione - presentandosi in forma digitale come un pezzo di software - di qualcosa di conosciuto ed esistito prima (chip virtuali, circuiti stampati, dispositivi elettronici). Quindi quando il mondo è diventato più digitale e ha portato la parola emulatore alle masse, le masse hanno aggiunto incertezza ad esso (o ragioni aggiuntive).

Simulatore

Prima di tutto, ho visto molti commenti sugli emulatori fare o sostituire qualcosa di reale, ma i simulatori no.

MA il simulatore di volo è usato per una cosa reale: addestra piloti, dà loro abilità e conoscenza e sostituisce costosi aerei reali e fa risparmiare molto denaro. E non possiamo semplicemente dire un emulatore aereo perché abbiamo la sensazione interiore che questo sia molto più di questo, quindi lo chiamiamo simulatore :) Il simulatore aereo può contenere un radar emulato o un transponder che è vero.

Controindicazioni che i simulatori sono utilizzati per l'analisi e lo studio (e gli emulatori per qualcosa di reale), ma che l' analisi e lo studio non sono meno reali delle schede GSM emulate (ancor più nell'era informativa in cui viviamo). L'analisi aggiunge valore all'azienda, riduce i costi o evidenzia profitti non inferiori all'hardware sostituito (emulato).

Il simulatore è simile alla modellazione di qualcosa che non possiamo ottenere per qualche motivo (costo, tecnologia, impossibilità fisica). Di solito è simulato per qualcosa di nuovo o intangibile o complesso o non adeguatamente noto a noi come mercato, clima, combustione, utente. Quindi ecco che arrivano il volo, il buco nero, la borsa, le simulazioni.

Quindi finalmente:

  1. Il simulatore è più ampio dell'emulatore
  2. Il simulatore tende a imitare / modellare più processi / cose globali in generale con la capacità di limitare l'imitazione (ad es. Simulatore di condensatori con preset che rappresentano alcuni modelli noti)
  3. L'emulatore tende a imitare determinati dispositivi hardware con determinate specifiche, caratteristiche e proprietà note (ad es. Emulatore SNES, Intel 8087 o Roland TB-303)

Per quanto riguarda l'origine delle parole

Tutto veniva dal latino e significa:

  • emulare è "essere uguali" (sembra più aggressivo e diretto - rivalità)
  • simulare è "essere simile" (sembra più astuto e ingannevole - imitazione)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.