Bien que je comprenne ce que la simulation et l'émulation signifient 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 pourrait-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 :))
Réponses:
L'émulation est le processus consistant à imiter le comportement extérieurement observable pour correspondre à une cible existante. L'état interne du mécanisme d'émulation n'a pas à refléter avec précision l'état interne de la cible qu'il émule.
La simulation, d'autre part, implique la modélisation de 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 pouvoir examiner la simulation et observer les propriétés que vous verriez également si vous regardiez la cible d'origine. En pratique, il peut y avoir des raccourcis vers la simulation pour des raisons de performances - c'est-à-dire que certains aspects internes de la simulation peuvent en fait être une émulation.
MAME est un émulateur de jeu d'arcade; Hyperterm est un émulateur de terminal (pas très bon). Il n'est pas nécessaire de modéliser la machine d'arcade ou un terminal en détail 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 la cible fait en 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. Voilà 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 s'exécuter beaucoup plus lentement qu'en 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 relie parfaitement les circuits électriques à une simulation SPICE.) Une simulation de simulation ne conduit pas toujours à l'émulation -
la source
Si un simulateur de vol pouvait vous transporter de A à B, ce serait un émulateur de vol.
Un émulateur peut remplacer l'original pour une utilisation réelle .
Un PC virtuel émule un PC.
Un simulateur est un modèle d'étude et d'analyse.
Un émulateur devra toujours fonctionner presque en temps réel. Pour un simulateur ce n'est pas toujours le cas. Une simulation géologique pourrait faire 1000 ans / seconde ou plus.
la source
Simulation = Pour analyse et étude
Émulation = Pour une utilisation comme substitut
Un simulateur est un environnement qui modélise mais un émulateur est un environnement qui reproduit l'utilisation comme sur l'appareil ou le système d'origine.
Le simulateur imite l'activité de quelque chose qu'il simule. Il "apparaît" (beaucoup peut aller avec cela "apparaît", selon le contexte) pour être le même que 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.
L'émulateur, en revanche, " fait " ce que fait la chose émulée, et ce faisant " semble faire la même chose ". Un émulateur peut utiliser différents ensembles de protocoles pour imiter la chose émulée, mais le résultat / résultat est toujours le même que l'objet d'origine. Par exemple, EMU8086 émule le microprocesseur 8086 sur votre ordinateur, qui ne fonctionne évidemment pas sur 8086 (= différents protocoles ), mais la sortie qu'il donne est ce que donnerait un vrai 8086.
la source
C'est une différence de concentration. Les émulateurs 1 se concentrent sur la recréation du comportement d'un système, sans égard au fonctionnement interne du système. Les simulateurs 2 se concentrent sur la modélisation des composants d'un système. Vous utilisez un émulateur lorsque vous vous souciez principalement de ce que fait un système et un simulateur lorsque vous vous souciez de 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 une autre en qualités ou en actions ", tandis que la simulation consiste à " modéliser , reproduire, dupliquer le comportement, l'apparence ou les propriétés de". Pas beaucoup de différence. L'émulation vient de l' æmulus , «s'efforçant, rivalisant», et est liée à «imiter» et «image», ce qui suggère une ressemblance avec le levier de surface. "Simulation" vient de similis "like", tout comme le mot "similar", ce qui suggère peut-être une congruence plus profonde.
Références:
la source
Je ne pense pas que l'émulateur et le simulateur puissent être comparés. Les deux imitent quelque chose, mais ne font pas partie de la même portée de raisonnement, ils ne sont pas utilisés dans le même contexte.
En bref: un émulateur est conçu pour copier certaines fonctionnalités de l'orginial 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 ressembler à l'original aux êtres humains. Sans les caractéristiques de l'original, le simulateur ne peut pas le remplacer dans l'environnement réel.
Un émulateur est un appareil qui imite quelque chose d'assez près pour qu'il puisse être substitué à la vraie chose. Par exemple, vous voulez qu'un circuit fonctionne comme un circuit ROM (mémoire morte), mais vous voulez également ajuster le contenu jusqu'à ce qu'il soit ce que vous voulez. Vous utiliserez un émulateur de ROM, une boîte noire (susceptible d'être basée sur le processeur) avec des interfaces physiques et électriques compatibles avec la ROM que vous souhaitez émuler. L'émulateur sera branché sur l'appareil à la place de la vraie ROM. La carte mère ne verra aucune différence lors du travail, mais vous pourrez facilement changer le contenu de la ROM émulée. Autrement dit, l'émulateur agira exactement comme la réalité dans son contexte de carte mère (peut-être un peu plus lent en raison du modèle interne réel) mais il y aura des fonctions supplémentaires (comme la réécriture) visibles uniquement par le concepteur, hors du contexte de la carte mère . La définition de l'émulateur serait donc: quelque chose qui imite l'original, a toutes ses fonctionnalités,
Un simulateur est utilisé dans un autre contexte de réflexion, par exemple un simulateur d'avion, un simulateur de voiture, etc. La simulation ne prendra en charge que certains aspects de la réalité, généralement ceux liés à façon dont un être humain le percevra et le contrôlera.. Le simulateur n'effectuera pas les fonctions des éléments réels et ne pourra pas y être soutenu. Le simulateur d'avion ne volera ni ne transportera personne, ce n'est pas du tout son but. Le simulateur n'est pas destiné à fonctionner, mais à apparaître au pilote comme quelque chose de réel à des fins autres que les normales, par exemple pour permettre un entraînement au sol (y compris dans des situations inhabituelles comme une panne de tout moteur). La définition du simulateur serait donc: quelque chose qui peut apparaître à l'homme, dans une certaine mesure, comme l'original, mais ne peut pas le remplacer pour une utilisation réelle. De plus, le pilote saura que le simulateur est un simulateur.
Je ne pense pas que nous verrons un simulateur ROM, car la ROM n'interagit pas avec les êtres humains, ni aucun émulateur d'avion, car les avions ne peuvent pas avoir de remplaçant remplissant les mêmes fonctions dans le monde réel.
À mon avis, le modèle à l'intérieur d'un émulateur ou d'un simulateur peut être n'importe quoi et ne doit pas être similaire au modèle de l'original. Un modèle d'émulateur ROM sera probablement un logiciel au lieu de matériel, MS Flight Simulator ne peut pas être plus de logiciels qu'il ne l'est.
Cette comparaison des deux termes contredira la réponse actuellement sélectionnée (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 effectuer 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, donc un simulateur d'avion devra imiter certains aspects de l'avion, ainsi que l'environnement du avion parce qu'il n'est pas utilisé dans cet environnement réel, mais dans une salle de formation.
C'est une grande différence avec l'émulateur qui n'émule que l'original, et son but est d'être utilisé dans l'environnement de l'original sans avoir besoin de l'émuler. Retour au contexte d'avion ... qu'est-ce qu'un émulateur d'avion? Peut-être un train qui reliera deux aéroports - en fait deux marches d'avion - transportant des passagers, avec des hôtesses de l'air à bord, avec un intérieur de voiture ressemblant à une véritable cabine d'avion, et avec un capitaine disant "Mesdames et Messieurs, notre altitude est actuellement de 10 km et la température à notre destination est de 24 ° C ". Son avantage est difficile à voir, hum ...
En conclusion, l'émulateur est une vraie chose destinée à fonctionner, le simulateur est un faux destiné à tromper l'utilisateur.
la source
Explication simple.
Si vous souhaitez convertir votre PC (exécutant Windows) en Mac, vous pouvez effectuer l'une des opérations suivantes:
(ou)
Dans le premier cas, vous pouvez découvrir Mac, mais vous ne pouvez pas vous attendre à la même sortie que sur Mac.
Dans le second cas, vous pouvez vous attendre à la même sortie que sur Mac, mais il n'en reste pas moins que ce n'est qu'un PC.
la source
Pour comprendre la différence entre un simulateur et un émulateur, gardez à l'esprit qu'un simulateur essaie d'imiter le comportement d'un appareil réel. Par exemple, dans le cas du simulateur iOS, il simule le comportement réel d'un appareil iPhone / iPad réel. Cependant, le simulateur lui-même utilise les différentes bibliothèques installées sur le Mac (telles que QuickTime) pour effectuer son rendu afin que l'effet ressemble à celui d'un iPhone réel. De plus, les applications testées sur le simulateur sont compilées en code x86, qui est le code octet compris par le simulateur. Un véritable appareil iPhone, à l'inverse, utilise un code basé sur ARM.
En revanche, un émulateur émule le fonctionnement d'un véritable appareil. Les applications testées sur un émulateur sont compilées dans le code d'octet réel utilisé par le périphérique réel. L'émulateur exécute l'application en traduisant le code d'octet sous une forme qui peut être exécutée par l'ordinateur hôte exécutant l'émulateur.
Pour comprendre la subtile différence entre la simulation et l'émulation, imaginez que vous essayez de convaincre un enfant que jouer avec des couteaux est dangereux. Pour simuler cela, vous faites semblant de vous couper avec un couteau et gémissez de douleur. Pour imiter cela, vous vous coupez réellement.
la source
Un émulateur est un modèle de système qui acceptera toute entrée valide que le système émulé accepterait et produirait la même sortie ou le même résultat. Votre logiciel est donc un émulateur, uniquement s'il reproduit avec précision le comportement du système émulé.
la source
Il y a quelques années, je suis arrivé avec un adage très court qui, je crois, capture assez bien l'essence de la différence:
J'entends par là que vous utilisez un émulateur lorsque vous ne pouvez pas utiliser la vraie chose, et vous utilisez un simulateur lorsque vous ne pouvez pas utiliser la vraie chose et que vous voulez en savoir quelque chose .
la source
Dans un langage plus ou moins normal: si votre logiciel peut faire tout ce que le système imité peut faire, c'est un émulateur. S'il ne fait qu'approcher les résultats d'un système (informatique ou autre), c'est un simulateur.
la source
Simulateur: il est similaire à l'interpréteur. c'est-à-dire qu'il exécute réellement le vrai code ligne par ligne pour imiter le comportement
Emulator: c'est un exécutable similaire. c'est-à-dire qu'il prend le code compilé et l'exécute.
la source
Un émulateur est une alternative au système réel mais un simulateur est utilisé pour optimiser, comprendre et estimer le système réel.
la source
La distintion entre les deux termes est un peu floue. Venant d'un monde où les "émulateurs" sont des éléments matériels qui vous permettent de déboguer des systèmes embarqués. Et rappelez-vous les produits qui vous ont permis d'avoir des capacités ICE (In Circuit Emulation) pour déboguer une plate-forme PC, je trouve que l'utilisation du terme "Emulation" est un peu impropre pour un logiciel qui SIMULE le comportement d'un matériel.
Ma justification de l'utilisation actuelle du terme est que l'émulation est qu'elle peut "augmenter" la fonctionnalité, et ne concerne qu'une approximation "raisonnable" du comportement du système.
ICE: (In Circuit Emulation) Un morceau de matériel qui est branché sur une carte à la place du processeur réel. Il vous permet d'exécuter le système comme si le processeur réel était présent. Généralement, ceux-ci ont une variante du processeur sur eux pour exécuter réellement le logiciel avec une logique de collage pour permettre à l'utilisateur d'interrompre l'exécution et l'étape unique sous le contrôle du matériel. Certains fourniraient également une capacité de journalisation. La plupart des systèmes de développement de processeurs modernes ont remplacé l'émulation de type ICE par l'émulation JTAG, où le JTAG parle simplement au processeur via une liaison série spéciale et toute l'exécution est effectuée par le processeur monté sur la carte.
ÉMULATEUR logiciel: un émulateur 0x86 ne concerne que la possibilité d'exécuter le langage d'assemblage 0x86, sans fournir de modèle comportemental cycle par cycle précis d'un processeur 0x86 SPÉCIFIQUE. Bochs en est un exemple. QEMU fait cela, mais permet également la "virtualisation" en utilisant des modules de noyau spéciaux.
SIMULATEUR: Texas Instruments fournit un modèle comportemental CYCLE PRÉCIS de ces processeurs pour le développement de logiciels qui est destiné à être une SIMULATION précise du comportement de cœurs de processeur SPÉCIFIQUES à utiliser par les développeurs avant d'avoir du matériel fonctionnel.
Fonctionnalité d'extension du logiciel EMULATOR: BLEEM vous a non seulement permis d'exécuter le logiciel Playstation, mais a également permis à l'affichage d'être émis avec une résolution plus élevée que celle que la Playstation était en mesure de fournir, et a également profité des capacités plus avancées des GPU disponibles. (Par exemple, un meilleur mélange et lissage des textures.)
la source
Les deux sont des modèles d'un objet dont vous disposez pour contrôler les entrées et observer les sorties.
La principale différence est que:
Permettez-moi de donner un exemple - supposons que vous vouliez faire des tests de système pour voir comment l'ajout d'un nouveau capteur (comme un thermomètre) à un système affecterait le système. Vous savez que le thermomètre envoie un message 8 fois par seconde contenant sa mesure.
Simulation - si vous n'avez pas encore le thermomètre, mais que vous voulez tester que ce taux de messages ne surchargera pas votre système, vous pouvez simuler le capteur en attachant une unité qui envoie un nombre aléatoire 8 fois par seconde. Vous pouvez exécuter n'importe quel test qui ne dépend pas de la valeur réelle envoyée par le capteur.
Émulation - supposons que vous ayez un thermomètre très cher qui mesure jusqu'à 0,001 C et que vous voulez voir si vous pouvez vous en tirer avec un thermomètre moins cher qui ne mesure qu'au 0,5 ° C près. Vous pouvez émuler le thermomètre moins cher en utilisant un thermomètre cher et puis arrondir la lecture à 0,5 C près et exécuter des tests qui reposent sur les valeurs de température.
Notez que les simulations peuvent également être utilisées pour prévoir ou prédire un comportement. Les simulations d'analyse par éléments finis sont utilisées dans de nombreuses applications, y compris la prévision météorologique et les souffleries virtuelles.
Les définitions des termes:
la source
Il est probablement préférable de répondre à cette question en examinant la pratique historique.
Dans le passé, j'ai vu des émulateurs de console de jeu sur PC pour PlayStation et SEGA.
Les simulateurs sont monnaie courante lorsque l'on se réfère à un logiciel qui tente d'imiter des actions de la vie réelle, comme la conduite ou le vol. Gran Turismo et Microsoft Flight Simulator me viennent à l'esprit comme des exemples classiques de simulateurs.
Quant à la différence linguistique, l'émulation se réfère généralement à l'action de copier les caractéristiques ou les comportements louables de quelqu'un (ou de quelque chose). L'émulation est distincte de l'imitation, dans laquelle une personne est copiée à des fins de moquerie.
La signification linguistique du verbe «simulation» est essentiellement de faire semblant ou d'imiter quelqu'un ou quelque chose.
la source
En informatique, une simulation et une émulation produisent les mêmes sorties, à partir des mêmes entrées, que le système d'origine; Cependant, une émulation utilise également les mêmes processus pour y parvenir et est fabriquée à partir des mêmes matériaux . Une simulation utilise différents processus du système d'origine. Il convient également de noter le terme de réplication, qui est l'intermédiaire des deux - utilisant les mêmes processus mais étant fabriqué à partir d'un matériau différent.
Donc, si je veux exécuter mon ancien jeu Super Mario Bros sur mon PC, j'utilise un émulateur SNES , car il utilise le même code informatique ou des processus similaires pour exécuter le jeu et utilise le même matériel ou des matériaux similaires (puce de silicium) . Cependant, si je veux piloter un Boeing 747 sur mon PC, j'utilise un simulateur de vol car il utilise des processus complètement différents de l'original (il n'y a pas d'ailes, de portance ou d'aérodynamisme réels!).
Voici les définitions exactes tirées d'un glossaire informatique:
Une simulation est un modèle de système qui capture les connexions fonctionnelles entre les entrées et les sorties du système, mais sans nécessairement se baser sur des processus qui sont identiques ou similaires à ceux du système lui-même.
Une réplication est un modèle de système qui capture les connexions fonctionnelles entre les entrées et les sorties du système et est basée sur des processus identiques ou similaires à ceux du système lui-même.
Une émulation est un modèle d'un système qui capture les connexions fonctionnelles entre les entrées et les sorties du système, sur la base de processus qui sont identiques ou similaires à ceux de ce système, et qui est construit avec les mêmes matériaux que ce système. .
Référence: The Open University, M366 Glossary 1.1, 2007
la source
Une simulation est un système qui se comporte de manière similaire à autre chose, mais qui est implémenté d'une manière entièrement différente. Il fournit le comportement de base d'un système mais ne respecte pas nécessairement toutes les règles du système simulé. Il est là pour vous donner une idée du fonctionnement de quelque chose.
Une émulation est un système qui se comporte exactement comme autre chose et respecte toutes les règles du système émulé. Il s'agit en fait d'une réplication complète d'un autre système, jusqu'à être compatible binaire avec les entrées et sorties du système émulé, mais fonctionnant dans un environnement différent de l'environnement du système émulé d'origine. Les règles sont fixes et ne peuvent pas être modifiées ou le système tombe en panne.
la source
Les définitions des mots décrivent le mieux la différence. Une recherche Google donne les définitions suivantes de simuler et émuler:
simuler imiter l'apparence ou le caractère de.
émuler une correspondance ou un dépassement (une personne ou une réussite), généralement par imitation.
Une simulation imite un système. Une émulation simule si bien un système qu'elle pourrait le remplacer ou même le dépasser.
En informatique, une émulation serait une baisse en remplacement du système qu'elle émule. Souvent, il surclasse même le système qu'il imite. Par exemple, les émulateurs de console de jeux apportent généralement des améliorations telles qu'une meilleure compatibilité matérielle, de meilleures performances et une qualité audio / vidéo améliorée.
Les simulations, en revanche, sont limitées par le fait qu'elles sont des modèles. Ils sont une meilleure tentative d'imiter un système, mais pas des remplacements pour lui. Il existe des émulateurs matériels car le matériel peut être imité et il serait difficile de faire la différence. Il n'y a pas d'émulateur agricole car il n'y a pas d'émulation qui pourrait remplacer l'agriculture réelle. Nous ne pouvons que simuler un modèle d'agriculture pour mieux comprendre comment mieux cultiver.
la source
Un PC virtuel essaie d' émuler un ordinateur, du point de vue d'un programmeur MAIS, en même temps, il simule un ordinateur du point de vue d'un ingénieur électricien .
la source
Émulateur:
Considérez une situation que vous ne connaissez que l'anglais et que vous êtes en Chine. Pour interagir avec une personne chinoise, vous avez besoin d'un traducteur. Maintenant, le rôle du traducteur est qu'il recherchera votre entrée en anglais et le convertira en chinois et donnera cette entrée à la personne chinoise et obtiendra la réponse de la personne chinoise et convertira en anglais et vous donnera la sortie en anglais. Maintenant, ce traducteur et chinois est l'émulateur. Les deux moissonneuses-batteuses offriront des fonctionnalités similaires à celles de la communication avec la personne anglaise. Le matériel peut donc être différent mais la fonctionnalité sera la même.
Simulateur:
Je ne peux pas donner un meilleur exemple que SPICE ou un simulateur de vol. Les deux remplaceront le comportement des composants matériels par le logiciel ou le modèle mathématique qui se comportera comme le matériel.
En fin de compte, cela dépend du contexte de la solution qui convient le mieux aux besoins du projet.
la source
Simulator est quelque chose de plus large qu'Emulator et il semble que la dualité de ces termes soit trop réfléchie dans les articles ci-dessus.
Émulateur
Les gens ont décidé d'utiliser une nouvelle émulation de mots dans le «monde informatique» lorsqu'ils ont commencé à remplacer certaines parties matérielles du système existant de manière simple - en imitant leur comportement et en s'appuyant sur la nature informatique pour être sûr de ne pas casser quelque chose et de tout laisser dans le état équivalent. Nous avons donc imité le morceau de cela! (et le tout fonctionne toujours comme avant)
Émulateur généralement utilisé au sens étroit dans le domaine numérique comme remplacement et virtualisation - se présentant sous forme numérique comme un logiciel - de quelque chose de connu et qui existait auparavant (puces virtuelles, cartes de circuits imprimés, appareils électroniques). Ainsi, lorsque le monde est devenu plus numérique et a apporté le mot de l' émulateur aux masses, les masses y ont ajouté de l'incertitude (ou des raisons supplémentaires).
Simulateur
Tout d'abord, j'ai vu de nombreux commentaires sur les émulateurs qui font ou remplacent quelque chose de réel mais pas les simulateurs.
MAIS le simulateur de vol est utilisé pour une vraie chose - il forme les pilotes, leur donne des compétences et des connaissances et il remplace les vrais avions coûteux et économise beaucoup d'argent. Et nous ne pouvons pas simplement dire un émulateur d'avion parce que nous avons le sentiment intérieur que c'est beaucoup plus que cela, alors nous l'appelons simulateur :) Le simulateur d'avion pourrait contenir un radar émulé ou un transpondeur qui est vrai.
Contre-affirmations que les simulateurs sont utilisés pour l'analyse et l'étude (et les émulateurs pour quelque chose de réel), mais que l' analyse et l'étude ne sont pas moins réelles que les cartes GSM émulées (encore plus à l'ère de l'information dans laquelle nous vivons). L'analyse ajoute une valeur à l'entreprise, réduit les coûts ou fait ressortir des bénéfices non inférieurs à ceux du matériel remplacé (émulé).
Le simulateur est similaire à la modélisation de quelque chose que nous ne pouvons pas obtenir pour une raison quelconque (coût, technologie, impossibilité physique). Il est généralement simulé pour quelque chose de nouveau ou d'intangible ou de complexe ou qui n'est pas bien connu de nous, comme le marché, la météo, la combustion, l'utilisateur. Voici donc le vol, le trou noir, la bourse, les simulations.
Alors finalement:
Quant aux mots d'origine
Tout vient du latin et signifie:
la source