Respuestas:
Sí, los conceptos son diferentes.
A simulation
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 se adhiere a todas las reglas del sistema que se simula. Está ahí para darle una idea sobre cómo funciona algo.
Ejemplo
Piense en un simulador de vuelo como un ejemplo. Parece y se siente como si estuvieras volando un avión, pero estás completamente desconectado de la realidad de volar el avión, y puedes doblar o romper esas reglas como mejor te parezca. Por ejemplo, vuela un Airbus A380 boca abajo entre Londres y Sydney sin romperlo.
Un emulation
es un sistema que se comporta exactamente como otra cosa y se adhiere a 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.
Ejemplo
El sistema MAME se basa en esta premisa. Todos esos viejos sistemas arcade que han sido olvidados durante mucho tiempo, que se implementaron casi por completo en hardware, o en el firmware de sus sistemas de hardware, pueden emularse hasta los errores y fallas originales que ocurrirían cuando alcanzara el puntaje más alto posible.
Una simulación es un modelo construido a partir de otra cosa que reproduce algunas de las características de esa cosa y deja de lado otras; obviamente, desea conservar las características relevantes para su consulta y dejar de lado las irrelevantes.
Por ejemplo, una simulación del tráfico de pasajeros temprano en la mañana deja de lado los nombres de los pasajeros, y tal vez incluso sus identidades (usando una variable de contador en lugar de un conjunto real de Commuter
objetos), pero no puede ignorar su velocidad de llegada.
La emulación es la ejecución de un software X creado para la plataforma A en la plataforma B, sin cambiar el software en sí. Esto requiere construir un modelo de A que se ejecute en B, y obviamente tiene que modelar todo sobre A que implique la ejecución de código. (En teoría, podría omitir la compatibilidad con códigos de operación que sabe que este software en particular nunca usará, pero eso es raro: hacer un emulador es un trabajo duro, y vale mucho más la pena hacer un trabajo completo y tener algo reutilizable que un kludge eso solo funciona para S.)
Ambos significan algo haciendo el trabajo de otra cosa.
La diferencia es que la "Simulación" ocurre a un nivel consciente (con respecto al usuario) y se finaliza típicamente para anticipar el resultado de una realidad sin tocar la realidad misma.
La "emulación" ocurre en un nivel inconsciente y tiene el propósito de reemplazar un componente subyacente con otro diferente que, con respecto al usuario, funcione como el antiguo.
En otras palabras, la simulación ocurre en un "mundo paralelo", mientras que la emulación ocurre en un "mundo reemplazado".
Técnicamente, ambos hacen lo mismo: hacer algo en un entorno que actúa como si fuera real.
Conceptualmente, sin embargo, hay una diferencia importante.
Se supone que una simulación está separada del mundo real hasta cierto punto; La salida de una simulación no está directamente conectada a lo que simula. Por ejemplo, un simulador de avión no vuela y el piloto no se está comunicando con un controlador de tráfico aéreo real.
Una simulación generalmente tiene el objetivo de probar o predecir algún proceso de la vida real en un entorno seguro; Debido a que la simulación está desconectada del mundo real, nada realmente malo puede suceder (un simulador de avión estrellado nunca mata a personas reales).
Una emulación , por el contrario, tiene el objetivo de tomar el lugar de lo real: por ejemplo, si emula un microcontrolador simple usando una CPU programable más sofisticada, esa CPU se puede usar en lugar del microcontrolador original; estará físicamente conectado a alguna máquina, y en realidad controlará esa máquina tal como lo haría el microcontrolador.
El objetivo de una emulación es reemplazar los componentes de hardware o software con equivalentes funcionales cuando los módulos originales no están disponibles (o se han vuelto demasiado caros, aunque solo sea para mantenerlos). La emulación también puede cumplir el objetivo de usar el hardware de manera más flexible: el mismo microcontrolador programable puede duplicarse para varios controladores más simples, cambiando el modo de emulación según sea necesario.
"technically"
, son completamente diferentes. La diferencia conceptual que describe es fundamental para esta diferencia.
Si bien la etimología no es estrictamente precisa, piense en la diferencia entre simpatía, "Me imagino cómo se debe sentir eso" y empatía, "Sé lo que se siente". Una simulación puede incluir una representación visual de un problema, pero puede que no. Por ejemplo, podría imprimir columnas de números que representen cuántas personas están alineadas para algo o ingresos totales o velocidad promedio. Tiene algunas características que coinciden con la realidad, y algunas que no.
La emulación, que a menudo se usa en el contexto de una plataforma que finge ser otra plataforma, es mucho más completa. Por lo tanto, los desarrolladores de Windows Phone pueden ejecutar o depurar sus aplicaciones telefónicas en una máquina Windows en un emulador, que se parece a un teléfono y también se comporta como tal. También puedes ejecutar tus viejos juegos de Commodore 64 en un emulador.
Las palabras no son precisas. La mayoría de los simuladores de vuelo se parecen más a los emuladores en mi opinión, pero el nombre se ha quedado en un momento en que no eran tan inmersivos. Algunas personas reservan el emulador de palabras para el caso multiplataforma y lo rechazan por cualquier otra cosa. Probablemente nunca se lo piense mal si hace lo mismo al hablar, pero comprenda que algunas personas pueden colocar el límite entre las dos palabras de manera un poco diferente, y hacer concesiones cuando alguien dice "esto es una emulación" para un simulación completa
Ambos términos son muy similares en concepto, imitando.
Simulación o Simuladores hacen uso del software para producir un sistema replicado que es muy similar al modelo objetivo con respecto a su funcionalidad central subyacente (especialmente su metodología básica).
Los emuladores, por otro lado, se centran más en la similitud exterior en comparación con el sistema de destino. Tiene una preocupación mínima por "cómo" se imitan las funciones. En general, los emuladores se utilizan cuando se trabaja en un entorno completamente diferente (por ejemplo, un sistema operativo diferente) en comparación con el sistema original.