Si bien entiendo lo que significan la simulación y la emulación en general, casi siempre me confundo con ellas. Suponga que creo una pieza de software que imita el hardware / software existente, ¿cómo debo llamarlo? ¿Un simulador o un emulador?
¿Alguien podría explicar la diferencia en términos de programación?
Bonificación: ¿Cuál es la diferencia en inglés entre estos dos términos? (Lo siento, no soy un hablante nativo :))
Respuestas:
La emulación es el proceso de imitar el comportamiento exteriormente observable para que coincida con un objetivo existente. El estado interno del mecanismo de emulación no tiene que reflejar con precisión el estado interno del objetivo que está emulando.
La simulación, por otro lado, implica modelar el estado subyacente del objetivo. El resultado final de una buena simulación es que el modelo de simulación emulará el objetivo que está simulando.
Idealmente, debería poder ver la simulación y observar las propiedades que también vería si mirara el objetivo original. En la práctica, puede haber algunos accesos directos a la simulación por razones de rendimiento, es decir, algunos aspectos internos de la simulación pueden ser realmente una emulación.
MAME es un emulador de juegos de arcade; Hyperterm es un emulador de terminal (no muy bueno). No es necesario modelar la máquina arcade o un terminal en detalle para obtener el comportamiento emulado deseado.
Flight Simulator es un simulador; SPICE es un simulador de electrónica. Modelan tanto como sea posible cada detalle del objetivo para representar lo que el objetivo hace en realidad.
EDITAR: Otras respuestas han señalado que el objetivo de una emulación es poder sustituir el objeto que está emulando. Ese es un punto importante. El enfoque de una simulación se centra más en el modelado del estado interno del objetivo, y la simulación no necesariamente conduce a la emulación. En particular, una simulación puede ser mucho más lenta que en tiempo real. SPICE, por ejemplo, no puede sustituir a un circuito electrónico real (incluso suponiendo que haya algún tipo de dispositivo mágico que interconecte perfectamente los circuitos eléctricos con una simulación SPICE). Una simulación de simulación no siempre conduce a la emulación.
fuente
Si un simulador de vuelo pudiera transportarlo de A a B, sería un emulador de vuelo.
Un emulador puede reemplazar el original para uso real .
Una PC virtual emula una PC.
Un simulador es un modelo para estudio y análisis.
Un emulador siempre tendrá que funcionar cerca del tiempo real. Para un simulador que no siempre es el caso. Una simulación geológica podría hacer 1000 años / segundo o más.
fuente
Simulación = Para análisis y estudio.
Emulación = Para uso como sustituto
Un simulador es un entorno que modela pero un emulador es uno que replica el uso como en el dispositivo o sistema original.
El simulador imita la actividad de algo que está simulando. "Aparece" (mucho puede ir con esto "aparece", dependiendo del contexto) para ser lo mismo que la cosa que se simula. Por ejemplo, el simulador de vuelo "parece" ser un vuelo real para el usuario, aunque no lo transporta de un lugar a otro.
El emulador, por otro lado, en realidad " hace " lo que hace lo que se emula, y al hacerlo también " parece estar haciendo lo mismo ". Un emulador puede usar un conjunto diferente de protocolos para imitar lo que se emula, pero el resultado / resultado es siempre el mismo que el objeto original. Por ejemplo, EMU8086 emula el microprocesador 8086 en su computadora, que obviamente no se está ejecutando en 8086 (= protocolos diferentes ), pero la salida que proporciona es lo que daría un 8086 real.
fuente
Es una diferencia de enfoque. Los emuladores 1 se centran en recrear el comportamiento de un sistema, sin tener en cuenta cómo funciona internamente el sistema. Los simuladores 2 se centran en modelar los componentes de un sistema. Utiliza un emulador cuando le importa principalmente lo que hace un sistema, y un simulador cuando le importa cómo lo hace.
En cuanto a sus significados generales en inglés, la emulación es "el esfuerzo por igualar o sobresalir a otro en cualidades o acciones ", mientras que la simulación es " modelar , replicar, duplicar el comportamiento, la apariencia o las propiedades de". No mucha diferencia. La emulación proviene de æmulus , "esforzarse, rivalizar", y está relacionada con "imitar" e "imagen", lo que sugiere un parecido de palanca de superficie. "Simulación" proviene de similis "me gusta", al igual que la palabra "similar", lo que quizás sugiere una congruencia más profunda.
Referencias
fuente
No creo que se puedan comparar emulador y simulador. Ambos imitan algo, pero no son parte del mismo alcance del razonamiento, no se usan en el mismo contexto.
En resumen: un emulador está diseñado para copiar algunas características del original e incluso puede reemplazarlo en el entorno real. Un simulador no está diseñado para copiar las características del original, sino solo para parecer similar al original para los seres humanos. Sin las características del original, el simulador no puede reemplazarlo en el entorno real.
Un emulador es un dispositivo que imita algo lo suficientemente cerca como para que pueda ser sustituido por algo real.. Por ejemplo, desea que un circuito funcione como un circuito ROM (memoria de solo lectura), pero también desea ajustar el contenido hasta que sea lo que desea. Utilizará un emulador de ROM, una caja negra (probablemente basada en CPU) con interfaces físicas y eléctricas compatibles con la ROM que desea emular. El emulador se conectará al dispositivo en lugar de la ROM real. La placa base no verá ninguna diferencia cuando trabaje, pero podrá cambiar fácilmente el contenido de la ROM emulada. Dicho de otro modo, el emulador actuará exactamente como lo real en el contexto de su placa base (tal vez un poco más lento debido al modelo interno real) pero habrá funciones adicionales (como reescribir) visibles solo para el diseñador, fuera del contexto de la placa base . Entonces, la definición del emulador sería: algo que imita al original, tiene todas sus características funcionales,
Un simulador se usa en otro contexto de pensamiento, por ejemplo, un simulador de avión, un simulador de automóvil, etc. La simulación se ocupará solo de algún aspecto de lo real, generalmente aquellos relacionados con la forma en que un ser humano lo percibirá y controlará.. El simulador no realizará las funciones del material real, y no puede ser sustituido por él. El simulador de avión no volará ni transportará a alguien, no es su propósito en absoluto. El simulador no está diseñado para funcionar, sino para parecerle al piloto de alguna manera como algo real para fines distintos a los normales, por ejemplo, para permitir el entrenamiento en tierra (incluso en situaciones inusuales como fallas de todo el motor). Entonces, la definición del simulador sería: algo que puede parecer humano, hasta cierto punto, como el original, pero que no puede reemplazarlo para su uso real. Además, el piloto sabrá que el simulador es un simulador.
No creo que veamos ningún simulador de ROM, porque la ROM no está interactuando con seres humanos, ni veremos ningún emulador de avión, porque los aviones no pueden tener un reemplazo que realice las mismas funciones en el mundo real.
En mi opinión, el modelo dentro de un emulador o un simulador puede ser cualquier cosa, y no tiene que ser similar al modelo del original. Es probable que un modelo de emulador de ROM sea software en lugar de hardware, MS Flight Simulator no puede ser más software de lo que es.
Esta comparación de ambos términos contradecirá la respuesta actualmente seleccionada (de Toybuilder) que marca la diferencia en el modelo interno, mientras que mi sugerencia es que la diferencia es si el falso puede o no usarse para realizar la función real en el mundo real ( hasta cierto punto aceptado, de hecho).
Tenga en cuenta que el simulador de avión también tendrá que simular la tierra, el sol, el viento, etc., que no son parte del avión, por lo que un simulador de avión tendrá que imitar algunos aspectos del avión, así como el entorno del avión porque no se usa en este entorno real, sino en una sala de entrenamiento.
Esta es una gran diferencia con el emulador que emula solo el original, y su propósito es usarse en el entorno del original sin necesidad de emularlo. Volviendo al contexto del avión ... ¿qué podría ser un emulador de avión? Tal vez un tren que conecte dos aeropuertos, en realidad dos escalones de avión, que transporten pasajeros, con azafatas a bordo, con el interior del automóvil como una cabina de avión real, y con el capitán diciendo "damas y caballeros, nuestra altitud es actualmente de 10 km y la temperatura en nuestro destino es de 24 ° C ". Su beneficio es difícil de ver, hum ...
Como conclusión, el emulador es una cosa real diseñada para funcionar, el simulador es una falsificación destinada a engañar al usuario.
fuente
Explicación simple
Si desea convertir su PC (con Windows) en Mac, puede hacer cualquiera de estos:
(o)
En el primer caso, puede experimentar Mac, pero no puede esperar la misma salida que en Mac.
En el segundo caso, puede esperar la misma salida que en Mac, pero el hecho es que solo se trata de una PC.
fuente
Para comprender la diferencia entre un simulador y un emulador, tenga en cuenta que un simulador intenta imitar el comportamiento de un dispositivo real. Por ejemplo, en el caso del simulador de iOS, simula el comportamiento real de un dispositivo iPhone / iPad real. Sin embargo, el Simulador en sí usa las diversas bibliotecas instaladas en la Mac (como QuickTime) para realizar su renderización de modo que el efecto se vea igual que un iPhone real. Además, las aplicaciones probadas en el simulador se compilan en código x86, que es el código de bytes que entiende el simulador. Por el contrario, un dispositivo iPhone real usa código basado en ARM.
Por el contrario, un emulador emula el funcionamiento de un dispositivo real. Las aplicaciones probadas en un emulador se compilan en el código de bytes real utilizado por el dispositivo real. El emulador ejecuta la aplicación traduciendo el código de bytes a un formulario que puede ser ejecutado por la computadora host que ejecuta el emulador.
Para comprender la sutil diferencia entre simulación y emulación, imagine que está tratando de convencer a un niño de que jugar con cuchillos es peligroso. Para simular esto, finges cortarte con un cuchillo y gemir de dolor. Para emular esto, en realidad te cortas.
fuente
Un emulador es un modelo de un sistema que aceptará cualquier entrada válida que acepte el sistema emulado y producirá la misma salida o resultado. Por lo tanto, su software es un emulador, solo si reproduce con precisión el comportamiento del sistema emulado.
fuente
Hace algunos años se me ocurrió un adagio muy corto que, creo, captura la esencia de la diferencia bastante bien:
Con eso quiero decir que usas un emulador cuando no puedes usar la cosa real, y usas un simulador cuando no puedes usar la cosa real y quieres descubrir algo al respecto .
fuente
En un lenguaje más o menos normal: si su software puede hacer todo lo que el sistema imitado puede hacer, es un emulador. Si solo se aproxima a los resultados de un sistema (TI o no), es un simulador.
fuente
Simulador: es similar al intérprete. es decir, realmente ejecuta el código real en línea por línea para imitar el comportamiento
Emulador: es un ejecutable similar. es decir, toma el código compilado y lo ejecuta.
fuente
Un emulador es una alternativa al sistema real, pero se utiliza un simulador para optimizar, comprender y estimar el sistema real.
fuente
La distinción entre los dos términos es un poco confusa. Procedente de un mundo donde los "emuladores" son piezas de hardware que le permiten depurar sistemas embebidos. Y recuerde que los productos que le permitieron tener capacidades ICE (In Circuit Emulation) para depurar una plataforma de PC, considero que el uso del término "Emulación" es un nombre poco apropiado para el software que SIMULA el comportamiento de una pieza de hardware.
Mi justificación para el uso actual del término es Emulación es que puede "aumentar" la funcionalidad, y solo se refiere a una aproximación "razonable" del comportamiento del sistema.
ICE: (en emulación de circuito) Una pieza de hardware que se conecta a una placa en lugar del procesador real. Le permite ejecutar el sistema como si el procesador real estuviera presente. Por lo general, estos tienen una variante del procesador en ellos para ejecutar realmente el software con lógica de pegamento para permitir al usuario interrumpir la ejecución y un solo paso bajo control de hardware. Algunos también proporcionarían capacidad de registro. La mayoría de los sistemas de desarrollo de procesadores modernos han reemplazado la emulación de tipo ICE con la emulación JTAG, donde JTAG solo habla con el procesador a través de un enlace serie de propósito especial y toda la ejecución la realiza el procesador montado en la placa.
Software EMULATOR: un emulador 0x86 solo se preocupa de poder ejecutar el lenguaje ensamblador 0x86, no proporciona un modelo de comportamiento ciclo por ciclo preciso de un procesador 0x86 ESPECÍFICO. Bochs es un ejemplo de esto. QEMU hace esto, pero también permite la "virtualización" utilizando módulos especiales del núcleo.
SIMULADOR: Texas Instruments proporciona un modelo de comportamiento de CICLO PRECISO de sus procesadores para el desarrollo de software que pretende ser una SIMULACIÓN precisa del comportamiento de los núcleos de procesadores ESPECÍFICOS para que los desarrolladores lo utilicen antes de tener hardware en funcionamiento.
Funcionalidad de aumento del software EMULATOR: BLEEM no solo le permitió ejecutar el software Playstation, sino que también permitió que la pantalla saliera con una resolución más alta que la que la Playstation podía proporcionar, y también aprovechó las capacidades más avanzadas de las GPU disponibles. (es decir, mejor mezcla y suavizado de texturas).
fuente
Ambos son modelos de un objeto del que tiene algún medio para controlar entradas y observar salidas.
La diferencia clave es que:
Permítanme dar un ejemplo: supongamos que desea hacer algunas pruebas del sistema para ver cómo agregar un nuevo sensor (como un termómetro) a un sistema afectaría al sistema. Usted sabe que el termómetro envía un mensaje 8 veces por segundo que contiene su medición.
Simulación: si aún no tiene el termómetro, pero desea probar que esta tasa de mensajes no sobrecargará su sistema, puede simular el sensor conectando una unidad que envía un número aleatorio 8 veces por segundo. Puede ejecutar cualquier prueba que no dependa del valor real que envía el sensor.
Emulación: suponga que tiene un termómetro muy costoso que mide 0.001 C y desea ver si puede sobrevivir con un termómetro más barato que solo mida al 0.5 C. más cercano. Puede emular el termómetro más barato usando un termómetro costoso y luego redondeando la lectura al 0.5 C más cercano y ejecutando pruebas que dependen de los valores de temperatura.
Tenga en cuenta que las simulaciones también se pueden utilizar para pronosticar o predecir el comportamiento. Las simulaciones de análisis de elementos finitos se utilizan en muchas aplicaciones, incluida la predicción del clima y los túneles de viento virtuales.
Las definiciones de los términos:
fuente
Probablemente, esta pregunta se responda mejor observando la práctica histórica.
En el pasado, he visto emuladores de consolas de juegos en PC para PlayStation y SEGA.
Los simuladores son comunes cuando se refieren a software que intenta imitar acciones de la vida real, como conducir o volar. Gran Turismo y Microsoft Flight Simulator vienen a la mente como ejemplos clásicos de simuladores.
En cuanto a la diferencia lingüística, la emulación generalmente se refiere a la acción de copiar las características o comportamientos dignos de elogio de alguien (o algo). La emulación es distinta de la imitación, en la cual una persona se copia con el propósito de burlarse.
El significado lingüístico del verbo 'simulación' es esencialmente pretender o imitar a alguien o algo.
fuente
En informática, tanto la simulación como la emulación producen las mismas salidas, a partir de las mismas entradas, que el sistema original; Sin embargo, una emulación también utiliza los mismos procesos para lograrlo y está hecha de los mismos materiales . Una simulación utiliza diferentes procesos del sistema original. También vale la pena señalar el término replicación, que es el intermedio de los dos: utiliza los mismos procesos pero está hecho de un material diferente.
Entonces, si quiero ejecutar mi viejo juego de Super Mario Bros en mi PC, uso un emulador SNES , porque está usando el mismo código de computadora (procesos) o similar para ejecutar el juego, y usa el mismo material o materiales similares (chip de silicio) . Sin embargo, si quiero volar un avión Boeing 747 en mi PC, uso un simulador de vuelo porque utiliza procesos completamente diferentes al original (¡no hay alas, elevaciones o aerodinámica reales involucradas!).
Aquí están las definiciones exactas tomadas de un glosario informático:
Una simulación es un modelo de un sistema que captura las conexiones funcionales entre las entradas y las salidas del sistema, pero sin estar necesariamente basado en procesos que son iguales o similares a los del sistema mismo.
Una réplica es un modelo de un sistema que captura las conexiones funcionales entre las entradas y salidas del sistema y se basa en procesos que son iguales o similares a los del sistema mismo.
Una emulación es un modelo de algún sistema que captura las conexiones funcionales entre entradas y salidas del sistema, basado en procesos que son iguales o similares a los de ese sistema, y que está construido con los mismos materiales que ese sistema. .
Referencia: The Open University, M366 Glosario 1.1, 2007
fuente
Una simulación es un sistema que se comporta de manera similar a otra cosa, pero se implementa de una manera completamente diferente. Proporciona el comportamiento básico de un sistema pero no necesariamente cumple con todas las reglas del sistema que se simula. Está ahí para darle una idea sobre cómo funciona algo.
Una emulación es un sistema que se comporta exactamente como otra cosa y cumple con todas las reglas del sistema que se emula. Es efectivamente una réplica completa de otro sistema, hasta ser binariamente compatible con las entradas y salidas del sistema emulado, pero opera en un entorno diferente al entorno del sistema emulado original. Las reglas son fijas y no se pueden cambiar o el sistema falla.
fuente
Las definiciones de las palabras describen la diferencia mejor. Una búsqueda en Google ofrece las siguientes definiciones de simulación y emulación:
simular imitar la apariencia o el carácter de.
emular un partido o superar (una persona o logro), generalmente por imitación.
Una simulación imita un sistema. Una emulación simula un sistema tan bien que podría reemplazarlo o incluso superarlo.
En informática, una emulación sería una caída en el reemplazo del sistema que está emulando. Muchas veces incluso superará al sistema que está imitando. Por ejemplo, los emuladores de consola de juegos suelen realizar mejoras, como una mayor compatibilidad de hardware, un mejor rendimiento y una mejor calidad de audio / video.
Las simulaciones, por otro lado, están limitadas por ser modelos. Son un mejor intento para imitar un sistema, pero no son reemplazos para él. Hay emuladores de hardware porque el hardware puede ser imitado y sería difícil notar la diferencia. No hay un emulador de agricultura porque no hay una emulación que pueda reemplazar la agricultura real. Solo podemos simular un modelo de agricultura para obtener información sobre cómo cultivar mejor.
fuente
Una PC virtual intenta emular una computadora, desde el punto de vista de un programador PERO, al mismo tiempo, simula una computadora desde el punto de vista de un ingeniero eléctrico .
fuente
Emulador:
Considera una situación en la que solo sabes inglés y estás en China. Para interactuar con una persona china necesita un traductor. Ahora, el rol del traductor es que buscará su opinión en inglés y la convertirá al chino y le dará esa información a la persona china y obtendrá la respuesta de la persona china y la convertirá al inglés y le dará la salida en inglés. Ahora ese traductor y persona china es el emulador. Ambas cosechadoras proporcionarán una funcionalidad similar a la de comunicarse con la persona inglesa. Por lo tanto, el hardware puede ser diferente pero la funcionalidad será la misma.
Simulador:
No puedo dar un mejor ejemplo que SPICE o simulador de vuelo. Ambos reemplazarán el comportamiento del componente de hardware con el software o modelo matemático que se comportará de manera similar al hardware.
Al final, depende del contexto que la solución se adapte mejor a las necesidades del proyecto.
fuente
Simulator es algo más amplio que Emulator y parece que la dualidad de estos términos se piensa demasiado en las publicaciones anteriores.
Emulador
La gente decidió usar una nueva emulación de palabras en el "mundo de la informática" cuando comenzaron a reemplazar algunas partes de hardware del sistema existente de manera directa, imitando su comportamiento y confiando en la naturaleza computacional para asegurarse de no romper algo y dejar todo en el estado equivalente ¡Así que hemos emulado la parte de esto! (y todo sigue funcionando como antes)
El emulador generalmente se usa en sentido estricto en el área digital como reemplazo y virtualización, que se presenta en forma digital como una pieza de software, de algo conocido y existido antes (chips virtuales, placas de circuitos, dispositivos electrónicos). Entonces, cuando el mundo se volvió más digital y trajo la palabra del emulador a las masas, las masas le agregaron incertidumbre (o razones adicionales).
Simulador
En primer lugar, vi muchos comentarios sobre los emuladores que hacen o reemplazan algo real, pero los simuladores no.
PERO el simulador de vuelo se usa para algo real: entrena a los pilotos, les da habilidad y conocimiento, y reemplaza a los aviones reales caros y ahorra mucho dinero. Y no podemos decir simplemente un emulador de avión porque tenemos la sensación interna de que esto es mucho más que eso, así que lo llamamos simulador :) El simulador de avión podría contener un radar o transpondedor emulado que es cierto.
Contradeclaraciones de que los simuladores se utilizan para el análisis y el estudio (y los emuladores para algo real), pero que el análisis y el estudio no son menos reales que las placas GSM emuladas (aún más en la era de la información en la que vivimos). El análisis agrega un valor al negocio, reduce costos o señala ganancias no menos que el hardware reemplazado (emulado).
El simulador es similar al modelado de algo que no podemos obtener por alguna razón (costo, tecnología, imposibilidad física). Por lo general, se simula para algo nuevo o intangible o complejo o que no conocemos adecuadamente como mercado, clima, combustión, usuario. Así que aquí viene el vuelo, el agujero negro, la bolsa de valores, las simulaciones.
Así que finalmente:
En cuanto a las palabras origen
Todo vino del latín y significa:
fuente