Esta persona logró ejecutar Windows XP en un procesador que no debería poder correrlo: lo hizo en solo dos meses porque estaba aburrido

Diseno Sin Titulo 7
Sin comentarios Facebook Twitter Flipboard E-mail

Cada cierto tiempo nos encontramos con alguna persona con el suficiente conocimiento, tiempo libre y pericia como para realizar impresionantes hitos en el mundo de la tecnología. En esta ocasión, un usuario del foro MSFN llamado Dietmar se dio a la tarea de correr Windows XP en una computadora que no debería poder ejecutarlo por sí misma.

Pero, ¿cómo es que logró hacer funcionar uno de los sistemas operativos (SO) más icónicos de Microsoft en un procesador i486? El reto no fue tan sencillo como lo hace parecer Dietmar, quien tardó dos meses en lograrlo. Hay personas que tienen hobbies muy particulares, y esta realizó algo que parecía imposible.

Antes que nada, un poco de contexto. ¿Qué es un procesador i486 y por qué no es capaz de correr Windows XP sin un poco de ayuda? El i486 es un microprocesador de cuarta generación de Intel, puesto a la venta en 1989. Se trata de un procesador de 32 bits que mejoró significativamente en comparación con su predecesor, el i386. Esto se debe a que agregó unidades de punto flotante (es decir, cálculos más precisos utilizando aritmética que integra números reales).

Sin embargo, aunque era un procesador bastante decente para su época, Windows XP se publicó en 2001. Para ese entonces, dicho sistema operativo estaba diseñado para funcionar en dispositivos bastante más avanzados que el i486 (recordemos la ley de Moore). Además, el nuevo SO de Microsoft utilizaba instrucciones modernas y requería una RAM más capaz.

Es por ello que parecía prácticamente imposible que Windows XP se ejecutase en un i486, aunque Dietmar demostró lo contrario. El problema principal eran las instrucciones no soportadas para el i486.

La instrucción que dio en el clavo

James Harrison Vpoexr5wmr4 Unsplash

Dietmar identificó una instrucción en particular que estaba causando problemas para la comunicación entre el procesador y el SO, esta era: "CMPXCHG8B". Dicha instrucción no es compatible con el i486, y es crucial para las operaciones de procesamiento y sincronización con los sistemas de Windows XP.

El trabajo que realizó Dietmar fue crear un código que emulara el comportamiento y las funciones de "CMPXCHG8B", de tal modo que el i486 pudiera entender qué es lo que se le estaba pidiendo. Para ello, debió asegurarse de que las operaciones alojadas en la memoria del procesador estuvieran bien localizadas y segmentadas, para que se sincronizaran correctamente con el hardware.

Lograr que Windows XP funcionase en un i486 es todo un desafío técnico que requirió de conocimientos a profundidad en el análisis y depuración de código, así como de un buen entendimiento del hardware y el comportamiento del SO. Básicamente, debes ser un ensamblador capaz y Dietmar demostró que lo es. Eso y que tiene mucho tiempo libre para sus exigentes hobbies.

Inicio