Un desarrollador de ReactOS, el proyecto de código abierto que busca compatibilidad binaria con los controladores y aplicaciones de Windows, consiguió armar una pila de software llamativa. Tomó la compilación experimental de ReactOS para ARM64, pensada para correr sobre hardware ARM de 64 bits como las placas Raspberry Pi, y la emparejó con el emulador de código abierto FEX, logrando así ejecutar juegos y aplicaciones de Windows x64 sobre ReactOS encima de hardware ARM nativo.

El desarrollador de ReactOS Ahmed Arif, conocido como "SidiHmeed", ha estado a cargo de buena parte de la actividad experimental en ARM64. Desde comienzos de este año ReactOS viene corriendo sobre ARM64 real, algo que al momento de escribir sigue en forma experimental. Pero continúa madurando, y el trabajo más reciente de Ahmed consiste en poner a funcionar FEX sobre ReactOS ARM64.

El proyecto ReactOS difundió la noticia de este "hito enorme" para ReactOS corriendo juegos de Windows x64 en hardware ARM64 mediante FEX. En el video publicado se mostró Super Mario 64 en funcionamiento.

El soporte para ARM64 parece estar avanzando bastante bien con el código de desarrollo más reciente, y ahora suma esta mezcla interesante de capas apiladas con FEX.

Ahmed también consiguió en los últimos días ejecutar ReactOS en la Raspberry Pi 3, una placa de computador de placa única más antigua, con controladores personalizados de Ethernet y WiFi, complementando el trabajo previo dirigido a la Raspberry Pi 5.

¿Qué hace exactamente cada capa de esta pila?

Vale la pena desarmar el montaje, porque la gracia está justamente en la cantidad de traducciones simultáneas que ocurren.

  • El hardware: un procesador ARM de 64 bits, como el Cortex-A72 de la Raspberry Pi 4 o el Cortex-A76 de la Pi 5. No entiende instrucciones x86.
  • ReactOS ARM64: implementa la interfaz de programación de Windows, pero compilado de forma nativa para ARM. Un programa escrito para ARM corre directo.
  • FEX: traduce instrucciones x86_64 a ARM64 en tiempo de ejecución. Es el mismo emulador que se usa habitualmente en Linux sobre ARM para correr juegos de escritorio.
  • La aplicación: un binario de Windows compilado para x64, que no sabe nada de lo anterior.

Dicho de otro modo, un juego pensado para Windows sobre Intel termina ejecutándose sobre un sistema operativo que no es Windows, encima de un procesador que no es Intel. Que eso arranque siquiera es notable.

¿Sirve esto para algo hoy?

Conviene ser honestos con las expectativas. ReactOS lleva más de dos décadas en desarrollo y sigue en versión alfa: su meta declarada es la compatibilidad binaria con Windows Server 2003, y el soporte ARM64 es experimental dentro de un proyecto que ya de por sí es experimental. Nadie debería poner esto en un equipo de producción.

El valor está en otra parte. La combinación demuestra que la capa de traducción x86 a ARM, que fue durante años el argumento central contra migrar el escritorio a ARM, hoy es software de código abierto que un desarrollador individual puede integrar. Apple lo resolvió con Rosetta 2 y Microsoft con Prism, ambos propietarios y atados a su plataforma. FEX es el equivalente abierto.

Para el ecosistema de placas ARM de bajo costo, que en Chile parten alrededor de los USD 50 por una Raspberry Pi 4 de 4 GB y suben de los USD 80 en el caso de la Pi 5, esto amplía el catálogo de software ejecutable sin depender del proveedor del sistema operativo. Es un argumento a favor de la longevidad del hardware: el mismo computador de placa única que hoy corre Linux podría mañana ejecutar aplicaciones heredadas de Windows sin licencias de por medio.

Más detalles del trabajo están disponibles en las publicaciones del desarrollador y en el repositorio del proyecto.