586 votes

Simulateur ou émulateur ? Quelle est la différence ?

Bien que je comprenne ce que signifient la simulation et l'émulation en général, je suis presque toujours confus à leur sujet. Supposons que je crée un logiciel qui imite le matériel/logiciel existant, comment dois-je l'appeler ? Un simulateur ou un émulateur ?

Quelqu'un peut-il expliquer la différence en termes de programmation ?

Bonus : Quelle est la différence en anglais entre ces deux termes ? (Désolé, je ne suis pas un locuteur natif :))

3 votes

Dans le développement d'applications mobiles, l'iPhone dispose d'un simulateur tandis qu'Android dispose d'un émulateur. Plus ici - stackoverflow.com/questions/4544588/

1 votes

J'ai trouvé le point de vue de Wikipedia sur ce sujet instructif : fr.wikipedia.org/wiki/Emulator#Emulation_versus_simulation

0 votes

Cela pourrait également être utile pour expliquer cela : programmeurs.stackexchange.com/questions/134746/

515voto

Toybuilder Points 4143

L'émulation est le processus qui consiste à imiter le comportement observable extérieurement pour correspondre à une cible existante. L'état interne du mécanisme d'émulation ne doit pas nécessairement refléter exactement l'état interne de la cible qu'il émule.

La simulation, quant à elle, consiste à modéliser l'état sous-jacent de la cible. Le résultat final d'une bonne simulation est que le modèle de simulation émule la cible qu'il simule.

Idéalement, vous devriez être en mesure de regarder dans la simulation et d'observer les propriétés que vous verriez également si vous regardiez dans la cible originale. En pratique, il peut y avoir des raccourcis dans la simulation pour des raisons de performance -- c'est-à-dire que certains aspects internes de la simulation peuvent être en fait une émulation.

MAME est un émulateur de jeux d'arcade ; Hyperterm est un émulateur de terminal (pas très bon). Il n'est pas nécessaire de modéliser en détail la machine d'arcade ou un terminal pour obtenir le comportement émulé souhaité.

Flight Simulator est un simulateur ; SPICE est un simulateur électronique. Ils modélisent autant que possible chaque détail de la cible pour représenter ce que fait la cible dans la réalité.

EDIT : D'autres réponses ont souligné que le but d'une émulation est de pouvoir se substituer à l'objet qu'elle émule. C'est un point important. Une simulation se concentre davantage sur la modélisation de l'état interne de la cible - et la simulation ne conduit pas nécessairement à l'émulation. En particulier, une simulation peut fonctionner beaucoup plus lentement que le temps réel. SPICE, par exemple, ne peut pas se substituer à un circuit électronique réel (même en supposant qu'il existe une sorte de dispositif magique qui interface parfaitement les circuits électriques avec une simulation SPICE). Une simulation ne mène pas toujours à l'émulation --

35 votes

Par cette définition, est-il donc impossible de simuler le monde réel dans les logiciels ? Je ne pense pas que nous puissions représenter avec précision l'état sous-jacent du monde réel - seulement émuler les propriétés observables... pour le moment.

11 votes

Je ne suis pas d'accord avec cela "[Les simulations] modélisent autant que possible chaque détail de la cible pour représenter ce que la cible fait dans la réalité." Les simulations disposent du modèle du système cible avec suffisamment de détails en fonction de l'objectif de la simulation. Par exemple, Flight Simulator ne modélise probablement pas les poissons dans la mer car cela est inutile pour l'objectif de la simulation.

0 votes

Je pense que cette réponse rend la différenciation entre les deux plus confuse car @Toybuilder utilise le verbe émuler dans la définition de la simulation. Dans la littérature, l'émulation est souvent utilisée dans le contexte du remplacement (partiel) du système réel. Cela signifie que l'émulation fonctionne dans le cadre du monde réel et non dans celui de la simulation.

402voto

Henk Holterman Points 153608

Si un simulateur de vol pouvait vous transporter de A à B, il s'agirait alors d'un émulateur de vol.

Un émulateur peut remplacer l'original pour réel utiliser.
Un PC virtuel émule un PC.

Un simulateur est un modèle d'étude et d'analyse.

Un émulateur devra toujours fonctionner de manière proche du temps réel. Pour un simulateur, ce n'est pas toujours le cas. Une simulation géologique pourrait faire 1000 ans/seconde ou plus.

6 votes

@Henk Votre exemple de "cockpit" est fantastique bien que je l'ai compris après avoir lu la réponse de Toybuilder. Merci :)

1 votes

PC virtuel n'est pas émuler, il virtualise. QEmu, d'un autre côté, fait émuler. Dans les deux cas, le nom doit être un indice.

25 votes

Je pense que l'on peut dire que Virtual PC émule un PC. La manière dont il émule le PC passe par la virtualisation, mais il s'agit plutôt d'un détail de mise en œuvre. On pourrait dire que la virtualisation matérielle est un sur-ensemble de l'émulation, dans la mesure où elle peut fournir un support accéléré du processeur, un accès exclusif aux périphériques matériels, etc.

211voto

Dheepak J Points 411

Simulation = Pour analyse y étude

Emulation = Pour une utilisation en tant que substitut

Un simulateur est un environnement qui modélise, tandis qu'un émulateur est un environnement qui reproduit l'utilisation comme sur le dispositif ou le système d'origine.

Le simulateur imite l'activité de la chose qu'il simule. Il "semble" (ce "semble" peut être associé à beaucoup de choses, selon le contexte) être identique à la chose simulée. Par exemple, le simulateur de vol "semble" être un véritable vol pour l'utilisateur, bien qu'il ne vous transporte pas d'un endroit à un autre.

Emulateur, d'autre part, en fait " fait " ce que fait l'objet de l'émulation, et ce faisant, elle aussi " semble faire la même chose ". Un émulateur peut utiliser un ensemble différent de protocoles pour imiter la chose émulée, mais le résultat est toujours le même que l'objet original. Par exemple, EMU8086 émule le microprocesseur 8086 de votre ordinateur, qui ne fonctionne évidemment pas sur 8086 (= différents protocoles ), mais la sortie qu'il donne est celle que donnerait un vrai 8086.

11 votes

La réponse la plus claire que j'ai vue. Pour moi, elle ne pourrait être améliorée qu'en omettant la phrase supplémentaire ou en l'intégrant dans vos excellentes définitions contrastées :-D

0 votes

Entièrement d'accord. On pourrait être plus formel en disant qu'un émulateur requiert la même interface et le même comportement de l'entité émulée, un simulateur ne le fait pas. C'est la même chose que "utilisation comme substitut", mais plus formellement testable.

43voto

outis Points 39377

C'est une différence d'orientation. Emulateurs 1 se concentrent sur la recréation du comportement d'un système, sans tenir compte de la façon dont le système fonctionne en interne. Simulateurs 2 se concentrent sur la modélisation des composants d'un système. Vous utilisez un émulateur lorsque vous vous intéressez surtout à ce que fait un système, et un simulateur lorsque vous vous intéressez à la façon dont il le fait.

Quant à leur signification générale en anglais, l'émulation est "l'effort d'égaler ou d'exceller un autre dans les qualités ou les performances". actions ", tandis que la simulation est "pour modèle répliquer, dupliquer le comportement, l'apparence ou les propriétés de". Pas de grande différence. L'émulation vient de æmulus Le terme "simulation" vient de l'anglais "striving", "rivaliser", et est lié à "imiter" et "image", ce qui suggère une ressemblance superficielle. "Simulation" vient de similis "comme", tout comme le mot "similaire", qui suggère peut-être une congruence plus profonde.

Références :

  1. Wikipedia : Emulateur
  2. Wikipedia : Simulation par ordinateur
  3. Wiktionnaire : émulation
  4. Wiktionnaire : simulation
  5. Etymologie en ligne : émulation
  6. Etymologie en ligne : simulation

0 votes

Votre réponse est différente des autres. Virtual PC est-il un simulateur ou un émulateur selon vous ?

0 votes

@MikaëlMayer : Beaucoup de réponses sont différentes de celles des autres, avec seulement quelques unes similaires. Je considérerais ma réponse comme équivalente (en ce sens que les choses seraient classées de la même façon) à celle de Toybuilder et cdiggens, et compatible avec celle de Jörg. Elle n'est contraire qu'à celles de Pontus et Aeolai.

0 votes

@MikaëlMayer Virtual PC est un émulateur. Il peut faire tout ce qu'un vrai PC peut faire.

21voto

mins Points 629

Je ne pense pas que l'émulateur et le simulateur puissent être comparés. Les deux imitent quelque chose, mais ne font pas partie du même champ de raisonnement, ils ne sont pas utilisés dans le même contexte.

En bref, un émulateur est conçu pour copier certaines caractéristiques de l'original et peut même le remplacer dans l'environnement réel. Un simulateur n'est pas conçu pour copier les caractéristiques de l'original, mais seulement pour paraître similaire à l'original aux yeux des êtres humains. Sans les caractéristiques de l'original, le simulateur ne peut pas le remplacer dans l'environnement réel.

Un site émulateur est un dispositif qui imite quelque chose d'assez proche pour qu'il puisse peut être substitué à la vraie chose . Par exemple, vous voulez qu'un circuit fonctionne comme un circuit ROM (read only memory), mais vous voulez aussi ajuster le contenu jusqu'à ce qu'il corresponde à ce que vous voulez. Vous utiliserez un émulateur de ROM, une boîte noire (probablement basée sur un CPU) avec des interfaces physiques et électriques compatibles avec la ROM que vous voulez émuler. L'émulateur sera branché sur le périphérique à la place de la vraie ROM. La carte mère ne verra aucune différence lors du fonctionnement, mais vous pourrez facilement changer le contenu de la ROM émulée. Autrement dit, l'émulateur agira exactement comme la chose réelle dans le contexte de la carte mère (peut-être un peu plus lentement en raison du modèle interne actuel), mais il y aura des fonctions supplémentaires (comme la réécriture) visibles uniquement par le concepteur, en dehors du contexte de la carte mère. La définition d'un émulateur serait donc la suivante : quelque chose qui imite l'original, possède toutes ses caractéristiques fonctionnelles, peut le remplacer dans une certaine mesure dans le monde réel, et peut avoir des caractéristiques supplémentaires non visibles dans le contexte normal.

A simulateur est utilisé dans un autre contexte de réflexion, par exemple un simulateur d'avion, un simulateur de voiture, etc. La simulation ne s'occupera que de certains aspects de la chose réelle, généralement ceux liés à comment un être humain va la percevoir et la contrôler . Le simulateur ne remplit pas les fonctions de l'appareil réel et ne peut s'y substituer. Le simulateur d'avion ne pourra pas voler ou transporter quelqu'un, ce n'est pas du tout son but. Le simulateur n'est pas destiné à fonctionner, mais à apparaître au pilote d'une manière ou d'une autre comme l'objet réel à des fins autres que ses fonctions normales, par exemple pour permettre la formation au sol (y compris dans des situations inhabituelles comme la panne de tous les moteurs). La définition du simulateur serait donc la suivante : quelque chose qui peut apparaître à l'homme, dans une certaine mesure, comme l'original, mais qui ne peut pas le remplacer pour une utilisation réelle. En outre, le pilote saura que le simulateur est un simulateur.

Je ne pense pas que nous verrons un simulateur de ROM, parce que les ROM n'interagissent pas avec des êtres humains, ni un émulateur d'avion, parce que les avions ne peuvent pas avoir de remplaçant remplissant les mêmes fonctions dans le monde réel.

Selon moi, le modèle à l'intérieur d'un émulateur ou d'un simulateur peut être n'importe quoi, et ne doit pas nécessairement être similaire au modèle de l'original. Un modèle d'émulateur ROM sera probablement un logiciel plutôt qu'un matériel, MS Flight Simulator ne peut pas être plus logiciel qu'il ne l'est.

Cette comparaison des deux termes contredira la réponse actuellement choisie (de Toybuilder) qui met la différence sur le modèle interne, alors que ma suggestion est que la différence est de savoir si le faux peut ou ne peut pas être utilisé pour exécuter la fonction réelle dans le monde réel (dans une certaine mesure acceptée, en effet).

Notez que le simulateur d'avion devra également simuler la terre, le soleil, le vent, etc., qui ne font pas partie de l'avion. Un simulateur d'avion devra donc imiter certains aspects de l'avion, ainsi que l'environnement de l'avion car il n'est pas utilisé dans cet environnement réel, mais dans une salle d'entraînement.

C'est une grande différence avec l'émulateur qui émule seulement l'original, et son but est d'être utilisé dans l'environnement de l'original sans avoir besoin de l'émuler. Revenons au contexte de l'avion... que pourrait être un émulateur d'avion ? Peut-être un train qui reliera deux aéroports -- en fait deux étapes d'avion -- transportant des passagers, avec des hôtesses de l'air à bord, avec un intérieur de voiture ressemblant à une cabine d'avion réelle, et avec le capitaine disant "mesdames et messieurs notre altitude est actuellement de 10 kms et la température à notre destination est de 24°C". Son avantage est difficile à voir, hum...

En conclusion, l'émulateur est une chose réelle destinée à fonctionner, le simulateur est un faux destiné à tromper l'utilisateur.

1 votes

L'expression "émulateur de ROM" me fait penser aux consoles de jeux vidéo virtuelles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X