Possible Duplicate:
Simulateur ou émulateur ? Quelle est la différence ?
En termes simples et compréhensibles, quelle est la différence entre les deux termes ?
Possible Duplicate:
Simulateur ou émulateur ? Quelle est la différence ?
En termes simples et compréhensibles, quelle est la différence entre les deux termes ?
(En utilisant comme exemple votre premier lien)
Vous voulez duplicater le comportement d'une ancienne calculatrice HP, il y a deux options:
Vous écrivez un nouveau programme qui dessine l'affichage et les touches de la calculatrice, et lorsque l'utilisateur clique sur les touches, votre programme fait ce que faisait l'ancienne calculatrice. C'est un Simulateur
Vous obtenez un dump du micrologiciel de la calculatrice, puis écrivez un programme qui charge le micrologiciel et l'interprète de la même manière que le microprocesseur de la calculatrice l'a fait. C'est un Émulateur
Le Simulateur tente de dupliquer le comportement de l'appareil.
L' Émulateur tente de dupliquer le fonctionnement interne de l'appareil.
C'est une question difficile à répondre de manière définitive car les termes sont souvent mal utilisés ou confondus.
Souvent, un émulateur est une réimplémentation complète d'un appareil ou d'une plate-forme particulière. L'émulateur agit exactement comme le vrai appareil le ferait. Par exemple, un émulateur NES implémente le CPU, la puce sonore, la sortie vidéo, les signaux du contrôleur, etc. Le code non modifié d'une cartouche NES peut être extrait, puis l'image résultante peut être chargée dans notre émulateur et jouée.
Un simulateur est une implémentation partielle d'un appareil/plateforme, il fait juste assez pour ses propres besoins. Par exemple, le simulateur d'iPhone exécute une "app iPhone" qui a été spécifiquement compilée pour cibler x86 et l'API Cocoa plutôt que le CPU ARM et l'API Cocoa Touch réels de l'appareil. Cependant, le binaire que nous exécutons dans le simulateur ne fonctionnerait pas sur le vrai appareil.
En général, je pense à cette question plus large en trois parties : simulation, stimulation, émulation et modélisation.
La simulation est l'utilisation de la modélisation pour créer un substitut contrôlable et représentatif d'un système complexe. Les simulations sont, par définition, toujours incomplètes.
La stimulation est l'utilisation d'entrées environnementales artificielles à une interface bien définie pour piloter, examiner et tester le comportement d'un appareil du monde réel.
L'émulation est le remplacement d'un appareil du monde réel par un modèle à une interface bien définie dans le but de permettre des réponses contrôlées de l'appareil émulé du monde réel. L'émulation est "complète" si toutes les interfaces sont présentes et si le comportement observé résultant correspond à celui de l'appareil du monde réel.
La modélisation est l'utilisation de techniques mathématiques, de matériel spécialisé et de jugement en ingénierie pour créer un substitut représentatif d'un environnement, d'un appareil, d'un système ou d'un comportement du monde réel.
En termes simples, un émulateur est quelque chose qui, à travers une interface bien définie, est indiscernable de l'équivalent du monde réel (sauf en termes de vitesse). Les émulations peuvent être complètes ou incomplètes.
En termes simples, une simulation est tout système qui peut être contrôlé et examiné pour une gamme de comportements similaires ou analogues à un système du monde réel. Les simulations ne sont jamais, par définition, complètes.
Les deux sont des modèles d'un objet pour lequel vous avez des moyens de contrôler les entrées et d'observer les sorties. Avec un émulateur, vous voulez que la sortie soit exactement ce que l'objet que vous émulez produirait. Avec un simulateur, vous voulez que certaines propriétés de votre sortie soient similaires à ce que l'objet produirait.
Laissez-moi donner un exemple - supposez que vous voulez faire des tests 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 message 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 - supposez que vous avez un thermomètre très cher qui mesure jusqu'à 0,001 °C, et que vous voulez voir si vous pouvez vous en sortir avec un thermomètre moins cher qui mesure seulement jusqu'au demi degré le plus proche. Vous pouvez émuler le thermomètre moins cher en utilisant un thermomètre cher en arrondissant la lecture au demi degré le plus proche et en exécutant des tests qui dépendent des valeurs de température.
Je ne sais pas si c'est l'opinion générale, mais j'ai toujours différencié les deux par ce qu'ils sont utilisés. Un émulateur est utilisé si vous voulez réellement utiliser la machine émulée pour sa sortie. Un simulateur, en revanche, est utilisé lorsque vous voulez étudier la machine simulée ou tester son comportement.
Par exemple, si vous souhaitez écrire une logique de machine à états dans votre application (qui s'exécute sur un CPU à usage général), vous écrivez un petit émulateur de machine à états. Si vous voulez étudier l'efficacité ou la viabilité d'une machine à états pour un problème particulier, vous écrivez un simulateur.
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.