Emulacion y Virtualizacion...
La Emulación es una técnica, que se encarga de duplicar las funciones de un sistema con un sistema diferente, para que el segundo se comporte (y parezca o actúe) como el primero.
Muchos de ustedes ya han tenido "encuentros cercanos" con un emulador...
"Encuentros Cercanos..."
Los usos mas comunes de los emuladores y por los que han ganado mucha popularidad, es en el campo de los videojuegos: para emular un Super Nintendo en nuestra computadora, basta con descargar un buen emulador como el Zsnes (mi favorito) y tener a la mano el ROM del juego que queremos rememorar.
"Captura Zsnes linux"
"Captura The Legend of Zelda, a Link to the past"
Estos emuladores proveen un envoltorio de funcionalidad para que el ROM (en el caso de los juegos de Super Nintendo) se comporte justo de la misma manera a como lo haría en el SNES. Claro que la emulación no se detiene en el software, también se refiere a la habilidad de un dispositivo (hardware) de imitar a otro.
En un sentido teórico, la Tesis de Alonzo Church y Alan Turing (Conjetura de Church y Tesis de Turing) nos dice que:
"Cualquier modelo 'razonable' computable puede ser
eficientemente simulado en una maquina de Turing."
Ese "modelo 'razonable' de computacion" puede ser tomado en el sentido de Software, y como ya bien sabemos, una computadora es en su esencia una maquina de Turing... o mejor dicho una maquina de Turing, es cualquier computadora que pueda ser construida. Claro, la Tesis Church-Turing no puede ser comprobada matemáticamente, así que es mas una hipótesis o se hace referencia a ella como una ley. En pocas palabras:
"...esta conjetura es mas facil
en teoria que en la practica"
La Tesis Church-Turing, no habla nada sobre limitantes de tiempo.
Si el software emulado no se
comporta con la suficiente velocidad no hay utilidad en la emulacion.
Bien, si creen que eso es confuso (?) Virtualizacion es ligeramente peor.