¿Cuáles son las diferencias entre simulación y emulación?

Tanto los simuladores como los emuladores le permiten ejecutar software en un entorno destinado a otro, pero lo hacen de diferentes maneras.

Un emulador funciona duplicando todos los aspectos del comportamiento del dispositivo original. Básicamente simula todo el hardware que usa el dispositivo real, permitiendo que el mismo software se ejecute sin modificaciones. Podrías copiar una aplicación del dispositivo original, ponerla en el emulador, y ni siquiera notaría la diferencia.

Un simulador, por otro lado, configura un entorno similar al sistema operativo del dispositivo original, pero no intenta simular el hardware del dispositivo real. Algunos programas pueden ejecutarse de manera un poco diferente y puede requerir otros cambios (como que el programa se compile para la CPU de la computadora en lugar de la del dispositivo), pero es una coincidencia lo suficientemente cercana como para que pueda hacer la mayor parte de su desarrollo contra el simulador.

Solo por esa descripción, un emulador parece una solución mucho mejor, y lo sería si no fuera por una cosa: los emuladores son realmente lentos. Emular el hardware real generalmente hace que el software funcione un orden de magnitud más lento de lo que lo haría de forma nativa. El lanzamiento del emulador generalmente requiere que emule todo el proceso de arranque del dispositivo real, lo que puede llevar varios minutos. Y cargar software nuevo en el dispositivo emulado a menudo es lento; incluso podría tener que emular la copia del software de una tarjeta de memoria o descargarlo a través de la red. Imagínese si estuviera escribiendo un ensayo y cada vez que quisiera volver a leer un párrafo, tuviera que esperar dos minutos para que aparezca en la pantalla. Es enloquecedor.

Un simulador no es tan parecido a un facsímil, pero ejecuta un código muy rápido (a menudo demasiado rápido, a veces algo que es suave en un simulador se entrecorta en un dispositivo), se inicia en segundos y carga un nuevo software casi al instante. Eso hace que los simuladores sean mucho más convenientes para trabajar, incluso si no son tan precisos.

La simulación es cuando estás replicando, por medio del software, el comportamiento general de un sistema a partir de un modelo conceptual.
La emulación es cuando está replicando, en un sistema diferente, cómo funciona realmente el sistema original internamente considerando cada función y sus relaciones.

En otras palabras:
La simulación se basa en una implementación de software de un modelo en el que no se tienen en cuenta las funciones internas de los sistemas originales (por ejemplo, un “simulador de vuelo” no tiene ningún “componente” de un avión real).
La emulación es una réplica de las funciones internas del sistema en un host diferente (por ejemplo, en un Mac OS XI puedo escribir un emulador de software de un sistema operativo Windows donde se puede ejecutar un programa Win). Los emuladores también pueden estar estrictamente basados ​​en hardware y normalmente se basan en una fase parcial o completa de “ingeniería inversa”.

La simulación significa probar un diseño en software, ya sea como RTL o nivel de puerta. La emulación significa que replica su diseño utilizando hardware existente (digamos FPGA) y ejecuta pruebas en ellos.
RTL: nivel de transferencia de registro
FPGA: matriz de compuerta programable en campo

Editar: también quería agregar las siguientes diferencias. La simulación se usa generalmente para verificar el diseño. La emulación se utiliza para desarrollar programas, ejecutar programas destinados a hardware diferente, etc. Hay una diferencia de propósito.

Un simulador y un emulador se relacionan con la tecnología moderna. Un simulador y un emulador pueden ser confusos y, a veces, se consideran iguales, pero su diferencia particular e importante los hace dos cosas diferentes.

La primera diferencia que se destaca entre un simulador y un emulador está en su definición . Un programa simulador en una computadora es un entorno virtual que modela aplicaciones del mundo real y conceptos teóricos, mientras que el emulador es un sistema que imita el comportamiento exacto de otro sistema que se utiliza en el mundo.

La segunda diferencia que se encuentra entre un simulador y un emulador está en su siguiente regla . Un simulador puede no seguir todas las reglas inherentes del sistema que se está simulando, por otro lado, un emulador se rige estrictamente por los parámetros y reglas del sistema emulado. El emulador se trata más de copiar el exacto del sistema emulado.

Tabla veraniega:

Cortesía de la mesa: Difference.guru

Si desea leer diferencias más constructivas entre la simulación y la emulación, este enlace de sitio web puede serle útil.

¡Gracias!

Si desea duplicar el comportamiento de una calculadora HP antigua, hay dos opciones:

  1. Usted escribe un nuevo programa que dibuja la pantalla y las teclas de la calculadora, y cuando el usuario hace clic en las teclas, sus programas hacen lo que hizo la calculadora anterior. Este es un simulador
  2. Obtiene un volcado del firmware de la calculadora, luego escribe un programa que carga el firmware y lo interpreta de la misma manera que lo hizo el microprocesador en la calculadora. Este es un emulador

El simulador intenta duplicar el comportamiento del dispositivo.
El emulador intenta duplicar el funcionamiento interno del dispositivo.

Cortesía de StackOverflow

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 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: desbordamiento de pila

Se usa un simulador para proporcionar una imitación realista de un determinado objeto sin reproducir con precisión todas sus características. Un ejemplo sería un simulador de vuelo: imita la experiencia realista de cómo se sentiría un humano al tomar el control de un vuelo. Sin embargo, no replica el comportamiento real de un vuelo, ya que no le permitirá viajar desde la ubicación A a la ubicación B.

Por otro lado, en los emuladores, reproducimos el mismo comportamiento del vuelo. Un emulador de vuelo le permitiría viajar desde la ubicación A a la ubicación B, lo que no es posible a través de un simulador.

Emulator es un software que intenta copiar el comportamiento del otro software. Internamente, ambos softwares pueden funcionar de diferentes maneras y tener diferentes estados. El uso básico del emulador es reemplazar el software original que está tratando de emular. VMware player es un emulador que emula un hardware en el que puede ejecutar diferentes sistemas operativos.

Simulator es una pieza de software que realiza operaciones del otro software. Aquí ambos softwares tendrán los mismos estados internos. Simulator en realidad recrea el comportamiento del software de destino. Flight simulator es un software que simula la apariencia real de un avión volando.

Las diferencias entre simulación y emulación es una pregunta sutil. Puede encontrar la respuesta perfecta en el libro de texto “Sistema experto: Principio y programación”.

Ambos se utilizan para describir una actividad que intenta construir un nuevo sistema a partir de un sistema conocido, que podría ser humano o máquina.

Un sistema experto es un sistema informático que emula la capacidad de toma de decisiones de un experto humano. El término emular significa que el sistema experto está destinado a actuar en todos los aspectos como un experto humano.

Una emulación es mucho más fuerte que una simulación, que solo se requiere para actuar como algo real en algunos aspectos

Creo que encontrarás la mejor respuesta aquí. Podría responderlo, pero ciertamente no me quedarían las palabras para ser exactos.

Lea: ¿Cuál es la diferencia entre simulación y emulación?