¿Qué es un emulador de computadora?

Parece que hay mucha confusión en las respuestas, así que permítanme aclarar una distinción importante:

Hay dos tipos de soluciones que a menudo se confunden: emulación y simulación .


Un emulador está diseñado para imitar el software / hardware original en el nivel “frontal”; está destinado a comportarse de la misma manera, pero los procesos subyacentes que recrean el comportamiento a menudo ni siquiera son similares . El objetivo de un emulador es obtener un resultado conocido lo más rápido posible. Los emuladores de la consola de juegos llegan a una solución predefinida utilizando las herramientas que tienen a su disposición. En realidad, no pueden ejecutar el código de la consola nativa , pero hacen que el juego piense que sí.

Al diseñar un emulador, comienza desde el resultado y retrocede hasta llegar a una solución que lo produce (cualquiera que sea la solución).

Por ejemplo, para emular algo, si el dispositivo original llegó a “4” al realizar “8/2”, en realidad no necesito hacer lo mismo , porque sé que “2 + 2” será más rápido, lo que importa es el resultado, que es “4”. Realmente no me importa el proceso original, porque quiero velocidad y resultados , y “2 + 2” es más rápido y produce un resultado final decentemente preciso.

Las caras de los personajes de los juegos de computadora son emulaciones que, aunque no siempre son precisas, proporcionan resultados decentes con rendimiento.


Un simulador , por otro lado, está diseñado para replicar los pasos originales para lograr el resultado, incluso si hacerlo funcionar de esa manera lo hace increíblemente lento. El punto es utilizar exactamente las mismas reglas que el original, y seguir exactamente los mismos pasos que el original, para llegar a una respuesta a la que llegaría el original. Los simuladores son modelos detallados de cosas reales que replican el comportamiento en virtud de replicar la maquinaria , de una forma u otra.

Al diseñar un simulador , comienza desde las premisas originales y avanza para encontrar el resultado final.

Por ejemplo, para hacer un simulador necesitaría replicar el comportamiento “8/2” si quiero que mi modelo sea exacto . Si creo mi modelo de forma precisa y completa, los resultados correctos seguirán en virtud, aunque sea lentamente.

Una gran cantidad de software de investigación científica (por ejemplo, [correo electrónico protegido] ) es simulación por diseño. A menudo son lentos, pero producen resultados precisos sobre los que la ciencia puede construir.


Sí, emularía una computadora. De hecho, a menudo lo hago. La razón principal es: porque existe una gran cantidad de software útil / entretenido que fue escrito para dispositivos / tecnologías que ya no existen o que no son fácilmente accesibles (juegos de DOS, por ejemplo).

A veces, el código original de algo puede perderse, o puede ser imposible de obtener (especialmente, como es el caso de las reclamaciones de derechos de autor en disputa), puede ser simplemente más fácil replicar el comportamiento resultante del sistema que se suponía que el software ejecutaba encendido , en lugar de librar una batalla legal larga (y a menudo imposible de ganar) para obtener el código y poder reescribirlo .

A veces, el software útil solo existe en una plataforma en particular a la que puede no tener acceso: en el trabajo, trabajo en Apple Macs, que hasta hace muy poco ni siquiera le permitía ejecutar Windows. Aún así, no voy a iniciar dualmente la Mac solo porque necesitamos usar uno o dos programas exclusivos de Windows. Usamos algo llamado una “máquina virtual” para ejecutar Windows sobre macOS para ese propósito.

La emulación también es excelente cuando diseña software destinado a una plataforma de hardware diferente a la suya (por ejemplo, para teléfonos móviles): proporcionará pistas invaluables sobre cómo se comportará el sistema de destino.

Sin embargo, la emulación es inútil cuando se diseña un nuevo hardware, porque en su lugar necesita crear un modelo realista de ese hardware (es decir, una simulación ); necesita encontrar sus defectos y debilidades, y no puede hacerlo si su modelo no lo hace. en realidad no se comporta como algo real; quiero decir, usted ya sabe cuál debería ser el resultado, pero necesita saber si ese resultado realmente será producido por su dispositivo.

El emulador es un hardware o software que permite que un sistema informático (llamado host ) se comporte como otro sistema informático (llamado invitado ). Un emulador generalmente permite que el sistema host ejecute software o use dispositivos periféricos diseñados para el sistema huésped. La emulación se refiere a la capacidad de un programa de computadora en un dispositivo electrónico para emular (o imitar) otro programa o dispositivo. Al igual que en Android Studio, usamos el emulador para ejecutar aplicaciones, este es un software (proporcionado por el trabajo de estudio como teléfono móvil real o pestaña) Si usamos nuestro teléfono real para la depuración del programa de estudio de Android se llama un emulador de hardware.

Sí, puedes emular una computadora usando una computadora. Y a veces lo hacemos, durante el desarrollo de chips. Muchos chips tienen microprocesadores dentro de ellos, y usted emula todo el chip mientras aún está en la etapa de diseño. Por supuesto, es enormemente más lento que el chip real. Puede tomar dos o tres horas emular el primer milisegundo más o menos después de “encender” su chip emulado. Pero si cuesta un millón de dólares responder el chip cuando comete un error en la secuencia de arranque, está dispuesto a ejecutar bastantes de esas carreras de dos o tres horas.

Un emulador en términos básicos le permite ejecutar software escrito para una arquitectura de microprocesador en una diferente.

Un ejemplo sería Mame, que permite jugar videojuegos para múltiples consolas arcade en procesadores x86 (PC).

Hay muchos emuladores diferentes que se ejecutarán en Windows o Linux en x86 para permitir que se ejecuten muchos tipos diferentes de software.

En informática, un emulador es hardware o software que permite que un sistema informático (llamado host) se comporte como otro sistema informático (llamado huésped). Un emulador generalmente permite que el sistema host ejecute software o use dispositivos periféricos diseñados para el sistema huésped.

Mi esposa dirige un negocio cuyas interacciones con el host (su servicio de TI) controlan la creación de hojas de cálculo, correos electrónicos y servicios periféricos. Cuando mi esposa inicia sesión en su computadora, en realidad está iniciando sesión en el host. El beneficio aquí es que la compañía de TI está mucho mejor equipada para almacenar cientos de miles de correos electrónicos, así como para mantener hojas de cálculo en la nube o en el host, lo que reduce la pesadilla de la computadora personal de mi esposa y toda la información almacenada allí.

Una nueva computadora en desarrollo puede usar un emulador durante el desarrollo. El emulador imita el hardware y ayuda en el diseño del hardware.