De sistemas operativos y emulaciones
Siento desilusionarte, Hector, pero si tu profesor de sistemas operativos te dijo esto, cambiate de profesor.
La función de un sistema operativo es proporcionar abstracciones a los programas para el manejo del hardware. Esas abstracciones son presentadas en la forma de funciones (syscalls) que realizan las operaciones que el programa necesita. Diferentes sistemas operativos tienen diferentes operaciones que ofrecer a los programas, dependiendo de las decisiones de diseño del sistema.
Un programa compilado para un sistema operativo no ejecuta en el otro por que las llamadas al sistema que espera usar no están ahí. Esto no sólo funciona para Linux vs Windows. Linux y un BSD, por ejemplo, tienen básicamente las mismas funciones, pero como implementan de forma diferente el mecanismo para llamarlas, un programa compilado para uno no corre en el otro*.
Si solo fuera cuestión del acomodo en memoria, hacer una emulación (del sistema operativo, no de arquitectura de procesador o algo así) sería muy sencillo. Bastaría con cargar las piezas del programa en otro orden. Precisamente por que no se trata sólo de eso es que el proyecto wine lleva años trabajando en lograr esta emulación y todavía no termina.
* Sé que hay bibliotecas de emulación de unos en los otros. Estoy tratando de simplificar esto, ¿sí?



Septiembre 16th, 2007 a las 11:06 pm
hola gracias por la aclaracion sobre el tama