Emulador


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 invitado ). Por lo general, un emulador permite que el sistema host ejecute software o utilice dispositivos periféricos diseñados para el sistema invitado. 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.

Muchas impresoras , por ejemplo, están diseñadas para emular impresoras HP LaserJet porque gran parte del software está escrito para impresoras HP. Si una impresora que no es de HP emula una impresora HP, cualquier software escrito para una impresora HP real también se ejecutará en la emulación de impresora que no es de HP y producirá una impresión equivalente. Desde al menos la década de 1990, muchos entusiastas de los videojuegos y aficionados han utilizado emuladores para jugar a juegos de arcade clásicos (y / u olvidados) de la década de 1980 utilizando el código de máquina y los datos originales de los juegos de la década de 1980, que son interpretados por un sistema de la era actual y para emular viejas consolas de videojuegos .

Un emulador de hardware es un emulador que toma la forma de un dispositivo de hardware. Los ejemplos incluyen la tarjeta compatible con DOS instalada en algunas computadoras Macintosh de la década de 1990 , como Centris 610 o Performa 630 , que les permitía ejecutar programas de software de computadora personal (PC) y emuladores de hardware basados ​​en FPGA . La tesis de Church-Turing implica que (teóricamente) cualquier entorno operativo puede emularse dentro de cualquier otro entorno (suponiendo que se ignoren las limitaciones de memoria). Sin embargo, en la práctica, puede resultar bastante difícil, especialmente cuando el comportamiento exacto del sistema que se va a emular no está documentado y debe deducirse (a veces tediosamente) medianteingeniería inversa . Tampoco dice nada sobre las limitaciones de tiempo; Si el emulador no funciona tan rápido como lo hizo con el hardware original, el software dentro de la emulación puede ejecutarse mucho más lento (posiblemente desencadenando interrupciones del temporizador que alteran el comportamiento).

"¿Puede un Commodore 64 emular MS-DOS ?" Sí, es posible que un [Commodore] 64 emule una PC IBM [que usa MS-DOS], en el mismo sentido en que es posible rescatar al lago Michigan con una cucharadita .

La mayoría de los emuladores simplemente emulan una arquitectura de hardware; si se requiere firmware o software del sistema operativo para el software deseado, también debe proporcionarse (y puede emularse). Tanto el sistema operativo como el software serán interpretados por el emulador, en lugar de ser ejecutados por hardware nativo. Aparte de este intérprete para el lenguaje de la máquina binaria emulada, también se debe proporcionar algún otro hardware (como dispositivos de entrada o salida) en forma virtual; por ejemplo, si escribir en una ubicación de memoria específica debe influir en lo que se muestra en la pantalla, entonces esto debería ser emulado. Si bien la emulación podría, si se lleva al extremo, descender al nivel atómico, basando su salida en una simulación del circuito real de una fuente de energía virtual, esta sería una solución muy inusual. Los emuladores generalmente se detienen en una simulación de las especificaciones de hardware documentadas y la lógica digital. La emulación suficiente de algunas plataformas de hardware requiere una precisión extrema, hasta el nivel de ciclos de reloj individuales, características no documentadas, elementos analógicos impredecibles y errores de implementación. Este es particularmente el caso de las computadoras hogareñas clásicas como la Commodore 64., cuyo software a menudo depende de trucos de programación de bajo nivel altamente sofisticados inventados por los programadores de juegos y la " demostración ".


DOSBox emula la interfaz de línea de comandos de DOS.
Una aplicación de emulación para la calculadora programable HP-41C X de 1983 que se ejecuta en Apple iOS . Además, se puede mostrar la salida de la impresora térmica histórica de esta línea de calculadora.
Windows XP con un emulador Acorn Archimedes , que a su vez ejecuta un emulador Sinclair ZX Spectrum .
Tetris ejecutándose en el emulador Wzonka-Lad Game Boy en AmigaOS , que se ejecuta en E-UAE en un moderno sistema Fedora Linux .
Basilisk II emula un Macintosh 68k usando código de interpretación y recompilación dinámica.