
Hola que tal a todos, sean bienvenidos a este breve artículo donde repasaremos un ejemplo de como Reactos, el sistema operativo en desarrollo se beneficia del desarrollo de Wine. A su vez Wine se beneficia de los avances de Reactos y existe así entonces una relación de simbiosis.
Reactos, como mencionamos en el artículo previo ("¿Qué es Wine?") es un sistema operativo en desarrollo, cuyo objetivo es recrear el funcionamiento de Windows XP, aunque también poco a poco va tomando características de sistemas más actualizados de Microsoft (de hecho recientemente implementó su primera función que es propia del kernel NT6 - Windows Vista a 8.1).
Para funcionar, los desarrolladores de ReactOS no tuvieron que implementar desde cero todas las bibliotecas que utilizan las aplicaciones de Windows; en su lugar, el proyecto reutiliza una parte importante del código desarrollado por Wine, aprovechando los años de trabajo invertidos en implementar las API de Windows y lograr que miles de aplicaciones funcionen correctamente.
Sin embargo, ReactOS no puede utilizar Wine exactamente como lo hace Linux. Wine fue diseñado como una capa de compatibilidad que traduce las llamadas de las aplicaciones Windows hacia el kernel y los servicios de Linux u otros sistemas compatibles con POSIX. ReactOS, por el contrario, implementa su propio kernel y sus propios servicios compatibles con Windows NT, por lo que las bibliotecas provenientes de Wine se comunican con estos componentes nativos en lugar de hacerlo con Linux.
Esto ahorra mucho tiempo a los desarrolladores que se centran en el desarrollo de la estructura interna del sistema operativo, interfaces gráficas y demás cosas que necesita el sistema operativo y no tanto en los cimientos pues esto ya está cubierto en parte por Wine.
Cuando algo que se necesita no existe o funciona mal en Wine:
Sin embargo no todo es perfecto, y en ocasiones aparecen aplicaciones o funcionalidades de Reactos que no trabajan bien y no hay solución directa en Reactos, pues el problema viene de un módulo Wine que tiene un desperfecto, "¿Qué se hace en ese caso?".
Aquí es donde viene la colaboración entre Wine y Reactos, veamos un ejemplo. Si visitamos este enlace veremos que un problema fue reportado en Reactos (problemas con selección de datos), si miramos la fecha de creación del reporte esta es 26/05/2025, pero si visitamos el proyecto Wine veremos que el problema se reportó a los desarrolladores el mismo día https://bugs.winehq.org/show_bug.cgi?id=58275.
El usuario que reporta el error a los desarrolladores de Wine es KRosUser (colaborador frecuente de Reactos), la respuesta es proporcionada por Nikolay Sivov (desarrollador de Wine, probablemente, no tengo el enlace a su perfil) 01/06/2025 (unos días más tarde) confirmando que se ha resuelto. Esto provoca que en el historial del error reportado en Reactos aparezca a hora una serie de entradas con los siguientes datos:

Es decir, con el problema resuelto en Wine, ahora Reactos adopta ese código para que pueda ser integrado a su kernel y aproveche la solución (el parche propuesto por Doug Lyons, otro desarrollador de Reactos). KRosUser confirma que el problema fue resuelto en Wine 10.10 y ya está activado el parche en Reactos, y ahora Reactos ya funciona correctamente por lo que el reporte puede ser cerrado sin problemas.
"¿Qué acaba de suceder?", que Reactos aprovechó una corrección importante implementada por Wine sin tener que asignar recursos para resolverlo (tiempo, programadores disponibles, investigar el problema a detalle, etc) y de esa manera sus desarrolladores siguen centrándose en crear el sistema sin tener que meterse mucho en las entrañas que se necesitan para que software o servicios básicos funcionen pues los implementa Wine.
A su vez Wine se benefició de que gente de Reactos les reportara el error, de otra manera tal vez no sabrían de esa problemática bajo ciertas condiciones y hubiera tomado mucho tiempo antes de darse cuenta del problema. Gracias a que alguien reporta el error, los desarrolladores de Wine estudian la situación y corrigen el problema, esto traerá como beneficio que todas las aplicaciones que hagan uso de ese módulo y que pudieran fallar ahora ya no tengan ese problema.
Reactos integra esa solución a su sistema operativo, las aplicaciones ahora funcionan correctamente tanto en Reactos como en Wine y todos felices.
Conclusiones:
Muchos proyectos opensource se benefician del avance entre ellos, un ejemplo de esto es Reactos y Wine, pero no son los únicos casos, pues Reactos obtiene mucha de la tecnología que necesita para funcionar de otros proyectos como Mesa 3D para renderizado OpenGL y FreeType para el dibujado de fuentes, entre otros.
Proton es otro ejemplo de beneficiarse de otros proyectos funcionales, concretamente Wine, freeDOS aunque es un sistema operativo en modo texto permite instalar opcionalmente a OpenGEM (se distribuye en el CD de extras del sistema operativo) y de esa manera tener un administrador de archivos gráfico muy sencillo aumentando la productividad en freeDOS.
Así que sí, la cooperación entre proyectos trae muchos beneficios y eso es muy bueno, esperamos siga así la relación entre Wine y Reactos y otros proyectos donde todos se benefician unos de otros. Muchas gracias por leer este artículo esperando haya sido de su completo interés, mil gracias por su apoyo a este blog.