En informática, un emulador es un software que permite ejecutar programas o videojuegos en una plataforma (sea una arquitectura de hardware o un sistema operativo) diferente de aquella para la cual fueron escritos originalmente. A diferencia de un simulador, que sólo trata de reproducir el comportamiento del programa, un emulador trata de modelar de forma precisa el dispositivo de manera que este funcione como si estuviese siendo usado en el aparato original.
Un uso popular de los emuladores es el de imitar la experiencia de los videojuegos de máquinas recreativas o videoconsolas en computadoras personales, o el poder ser jugados en otras videoconsolas. La emulación de videojuegos de sistemas antiguos (abandonware) en las modernas computadoras personales y videoconsolas de hoy día resulta generalmente más cómoda y práctico que en los dispositivos originales. Sin embargo, puede ser requerido a los creadores de emuladores una licencia de software para escribir programas originales que dupliquen la funcionabilidad de la rom y BIOS del hardware original, lo que comúnmente se conoce como high-level emulation o emulación de alto nivel.
En sentido teórico, la tesis de Church-Turing implica que cualquier ambiente funcional puede ser emulado dentro de cualquier otro. En la práctica, esto puede resultar realmente difícil, particularmente cuando el comportamiento exacto del sistema emulado no está documentado y debe ser deducido mediante ingeniería inversa. Tampoco se habla en la tesis sobre las diferencias en sincronización; si el emulador no actúa tan rápidamente como el hardware original, el software de emulación va a ir más lento que si fuese el hardware norma de una parte de la base.
Un emulador es un programa capaz de actuar de intérprete en la máquina destino (nuestro PC o un Mac, por ejemplo) para que un software originalmente escrito para otra plataforma pueda ser ejecutado en ella.
El emulador traduce el código de la máquina original al código de la de destino, por lo que nuestro ordenador ni siquiera sabe que está comportándose como otra plataforma (otro sistema operativo diferente al que ejecuta por defecto), y tan solo ejecuta el programa siguiendo su propio juego de instrucciones pero adaptado desde la plataforma original.
Para poder ejecutarse, los desarrolladores de este tipo de aplicaciones se documentan sobre la arquitectura interna de las máquinas a emular (procesador, juego de instrucciones, tipo y cantidad de registros y de memoria, direccionamientos, etc.) e implementan un comportamiento idéntico al de las mismas, gracias a la traducción de cada una de las operaciones al código de la máquina destino.
Gracias a la potencia de las computadoras actuales, el proceso de traducción, que en otro caso conllevaría un tiempo elevado, se realiza en un instante, lo que permite dar la impresión de estar ejecutando el juego o la aplicación como si del original se tratase, aunque en algunos casos las velocidades pueden ser tanto mayores como menores de las observadas en la plataforma nativa.
Un uso popular de los emuladores es el de imitar la experiencia de los videojuegos de máquinas recreativas o videoconsolas en computadoras personales, o el poder ser jugados en otras videoconsolas. La emulación de videojuegos de sistemas antiguos (abandonware) en las modernas computadoras personales y videoconsolas de hoy día resulta generalmente más cómoda y práctico que en los dispositivos originales. Sin embargo, puede ser requerido a los creadores de emuladores una licencia de software para escribir programas originales que dupliquen la funcionabilidad de la rom y BIOS del hardware original, lo que comúnmente se conoce como high-level emulation o emulación de alto nivel.
En sentido teórico, la tesis de Church-Turing implica que cualquier ambiente funcional puede ser emulado dentro de cualquier otro. En la práctica, esto puede resultar realmente difícil, particularmente cuando el comportamiento exacto del sistema emulado no está documentado y debe ser deducido mediante ingeniería inversa. Tampoco se habla en la tesis sobre las diferencias en sincronización; si el emulador no actúa tan rápidamente como el hardware original, el software de emulación va a ir más lento que si fuese el hardware norma de una parte de la base.
Un emulador es un programa capaz de actuar de intérprete en la máquina destino (nuestro PC o un Mac, por ejemplo) para que un software originalmente escrito para otra plataforma pueda ser ejecutado en ella.
El emulador traduce el código de la máquina original al código de la de destino, por lo que nuestro ordenador ni siquiera sabe que está comportándose como otra plataforma (otro sistema operativo diferente al que ejecuta por defecto), y tan solo ejecuta el programa siguiendo su propio juego de instrucciones pero adaptado desde la plataforma original.
Para poder ejecutarse, los desarrolladores de este tipo de aplicaciones se documentan sobre la arquitectura interna de las máquinas a emular (procesador, juego de instrucciones, tipo y cantidad de registros y de memoria, direccionamientos, etc.) e implementan un comportamiento idéntico al de las mismas, gracias a la traducción de cada una de las operaciones al código de la máquina destino.
Gracias a la potencia de las computadoras actuales, el proceso de traducción, que en otro caso conllevaría un tiempo elevado, se realiza en un instante, lo que permite dar la impresión de estar ejecutando el juego o la aplicación como si del original se tratase, aunque en algunos casos las velocidades pueden ser tanto mayores como menores de las observadas en la plataforma nativa.
No hay comentarios:
Publicar un comentario