Emulador para niños
Un emulador es un programa de computadora que permite que un dispositivo (como una computadora o una consola de videojuegos) actúe como si fuera otro. Esto significa que puedes usar programas o jugar videojuegos que fueron creados para una plataforma diferente a la tuya.
A diferencia de un simulador, que solo intenta imitar cómo se comporta un programa, un emulador busca copiar con mucha precisión cómo funciona el dispositivo original. Así, el programa o juego se ejecuta como si estuviera en su máquina original.
Contenido
¿Para qué se usan los emuladores?
Jugar videojuegos antiguos
Un uso muy popular de los emuladores es para disfrutar de videojuegos de máquinas recreativas o consolas antiguas en computadoras personales o en otras consolas más nuevas. Es mucho más cómodo y práctico jugar estos juegos en los dispositivos actuales que buscar y usar las máquinas originales.
A veces, los creadores de emuladores necesitan permisos especiales para que sus programas puedan copiar las funciones de la memoria interna (como la ROM y la BIOS) del equipo original. Esto se conoce como "emulación de alto nivel".
Usar programas de sistemas operativos viejos
Otro uso común es para simular sistemas operativos que ya no se usan mucho, o que son para otro tipo de máquina. Así, puedes usar programas que solo funcionan con esos sistemas operativos específicos.
¿Cómo funciona la emulación?
En teoría, cualquier sistema puede ser imitado por otro. Pero en la práctica, esto puede ser difícil, especialmente si no se sabe exactamente cómo funciona el sistema original y hay que descubrirlo. Además, si el emulador no es tan rápido como el equipo original, los programas pueden funcionar más lento.
Partes de un emulador
La mayoría de los emuladores imitan una configuración específica de las partes de una computadora. Si un programa necesita un sistema operativo para funcionar, el emulador también debe imitar ese sistema operativo. Tanto el sistema operativo como el programa deben ser "interpretados" por el emulador, como si estuvieran funcionando en el equipo original.
Además de entender el lenguaje de la máquina que se imita, el emulador también debe copiar otras partes del equipo, como los dispositivos para meter y sacar información (como el teclado o la pantalla). Por ejemplo, si escribir en una parte específica de la memoria debe cambiar lo que se ve en la pantalla, el emulador también debe hacer eso.
Los desarrolladores de programas para computadoras y consolas de videojuegos a menudo usan emuladores muy precisos antes de probar sus programas en el equipo real. Esto les permite crear y probar el programa antes de que el equipo final se fabrique en grandes cantidades. Así, pueden encontrar y corregir errores fácilmente.
Un emulador suele estar dividido en partes que corresponden a las partes del equipo que se imita. Generalmente, un emulador tiene:
- Un imitador de la unidad central de procesamiento (CPU).
- Una parte para la memoria.
- Varias partes para los dispositivos de entrada y salida.
Normalmente, los "buses" (que son como las autopistas por donde viaja la información dentro de la computadora) no se imitan directamente. Esto se hace para que el emulador sea más simple y rápido.
Imitador de la CPU
La parte que imita la CPU es a menudo la más complicada de un emulador. Muchos emuladores usan imitadores de CPU ya hechos para que la imitación sea fiel y eficiente.
El imitador de CPU más sencillo es un "intérprete". Este sigue las instrucciones del programa que se está imitando y, por cada instrucción, ejecuta una instrucción equivalente en el procesador de la computadora que está usando el emulador.
Esto se logra asignando un espacio en la memoria a cada parte de la CPU que se imita. La forma en que funciona la CPU imitada se puede traducir directamente a instrucciones de software, creando una copia del programa que refleja cómo funciona el hardware original.
Los intérpretes son muy populares para imitar CPUs porque son más fáciles de crear que otras opciones más rápidas. Su velocidad es suficiente para imitar computadoras de hace más de diez años en las máquinas modernas.
Sin embargo, la lentitud de los intérpretes puede ser un problema al imitar computadoras cuya velocidad de procesador es similar a la de la máquina que se está usando. Hace algunos años, se pensaba que era imposible imitar en estas situaciones.
Lo que ha permitido superar esta limitación son técnicas avanzadas como la "recompilación dinámica". Una forma popular de esto es la "compilación en tiempo de ejecución" (conocida como JIT). Esta técnica espera hasta que el programa necesite una parte del código que no ha sido traducida, y solo entonces (en el momento en que se necesita) traduce esos bloques de código para que puedan ejecutarse en la máquina actual.
El código traducido se guarda en una "memoria caché", y el código original no se pierde ni se cambia. De esta manera, incluso las partes de datos pueden ser procesadas por el recompilador, lo que solo causa un pequeño retraso en la traducción.
Dispositivos de entrada y salida
La mayoría de los emuladores no imitan el sistema principal de conexión (el bus). Cada dispositivo de entrada y salida (como el teclado, el ratón o la pantalla) se trata de forma especial. No hay una forma única para todos los dispositivos virtuales.
Esto puede ser una ventaja para el rendimiento, ya que cada parte de entrada y salida puede adaptarse a las características del dispositivo que se imita. Sin embargo, usar un sistema unificado para las entradas y salidas, como una "API" (Interfaz de Programación de Aplicaciones), puede ser más simple y permitir que se añadan fácilmente dispositivos virtuales de otras personas al emulador.
Incluso los emuladores que tratan cada dispositivo de forma especial tienen una base común para manejarlos:
- Manejan las "interrupciones", que son señales que indican que algo importante ha sucedido (por ejemplo, se presionó una tecla). El emulador hace que la CPU virtual "atienda" estas interrupciones.
- Leen y escriben en la memoria física, usando procedimientos similares a cuando se maneja la memoria lógica.
Imágenes ROM
Los emuladores usan "imágenes ROM". Estas son copias digitales del contenido de los cartuchos, disquetes o cintas que se usaban con los sistemas antiguos. En las computadoras, las ROM son archivos que se pueden cargar en la memoria. Es decir, el emulador es un programa que funciona como una consola (por ejemplo, una Game Boy Advance), y la ROM es un archivo que funciona como el cartucho o CD-ROM de un juego (por ejemplo, Mario Bros.).
Máquina virtual
La emulación puede usarse para crear una máquina virtual, que es como una computadora dentro de otra computadora. Esta máquina virtual puede imitar tanto máquinas que existen de verdad como máquinas que solo existen como un diseño (por ejemplo, la máquina virtual de Java). De esta forma, se puede ejecutar un programa hecho para una máquina específica en diferentes plataformas, simplemente llevando la máquina virtual a cada una de ellas.
Emuladores de videoconsolas
Los emuladores de videoconsolas son un tipo de emuladores creados para imitar una o varias consolas de videojuegos. Así, puedes jugar videojuegos diseñados para esas consolas. A menudo, los emuladores que imitan varias consolas eligen aquellas que tienen características similares (por ejemplo, MEKA imita todas las consolas de 8 bits de Sega y la Colecovision).
Galería de imágenes
Véase también
En inglés: Emulator Facts for Kids