¡Libre soy! La historia de ReactOS

By marjuanm | msproys | 26 Jun 2023


  ReactOS es un sistema operativo libre y de código abierto que se basa en la arquitectura Windows NT, otorga soporte para los controladores y aplicaciones existentes, y es una alternativa al sistema operativo Windows XP.

  ReactOS se encuentra en desarrollo desde 1996; si bien posee características incompletas, muchas aplicaciones de Windows (XP e inferiores) ya funcionan (por ejemplo, Adobe Reader 6.0, OpenOffice, etc.),​ por lo tanto es recomendado solamente para propósitos de evaluación y prueba.

  ReactOS está principalmente escrito en C, con algunos elementos, como el Explorador de archivos de ReactOS Explorer escritos en C++. El proyecto implementa parcialmente la funcionalidad de la API de Windows y se ha trasladado a la arquitectura del procesador AMD64.​ ReactOS, como parte del ecosistema FOSS, re-utiliza y colabora con otros muchos proyectos de software libre,​ más notablemente el proyecto Wine, el cual desarrolla una capa de compatibilidad de Windows para sistemas operativos basados en Unix.

Desarrollo básico de ReactOS


  ReactOS está principalmente escrito en C, con algunos elementos, tales como ReactOS Explorer y la pila del sonido, escritos en C++. El proyecto se basa en MinGW para la compilación, los desarrolladores pretenden que las API del kernel y del modo de usuario sean más compatibles con Windows NT versión 5.2 (Windows Server 2003) y que agreguen soporte para más aplicaciones y hardware con planes para orientarse a versiones más recientes de Windows mientras el desarrollo madura. El soporte de DirectX se realiza a través de ReactX, una implementación interna. La renderización 2D acelerada por hardware se realiza de forma nativa, mientras que otra funcionalidad de dibujo se redirige a OpenGL como una solución intermedia.​

  El progreso del desarrollo se ve influenciado por el tamaño del equipo de desarrollo y el nivel de experiencia de ellos. Como una estimación del esfuerzo necesario para implementar Windows 7, Microsoft emplea a 1000 o más desarrolladores, organizados en 25 equipos, con cada equipo con un promedio de 40 desarrolladores.​ A partir del 2 de septiembre de 2011 se sabe que hay unos 33 desarrolladores que han contribuido a lo largo de un período de 12 meses y un total acumulado a 2016 de 104 usuarios actuales y anteriores que han contribuido con código al proyecto a través de subversion desde su creación.​ En su presentación en hackmeeting 2009, en Milán, el desarrollador ReactOS Michele C. señaló que la mayoría de los desarrolladores aprenden acerca de la arquitectura de Windows mientras trabajan en ReactOS sin tener ningún conocimiento previo.

  Aunque los objetivos de ReactOS actuales sean fundamentalmente la plataforma PC x86/AMD64,84​ también se ha portado parcialmente a las arquitecturas ARM. El soporte para la Xbox, una variante de la arquitectura IA-32, fue añadida a través del uso de una arquitectura HAL específica, aunque esto, junto con un porte para PowerPC, ya no se mantienen de forma activa.

f9751cbba6c3e1e686709a54d2ccbbd6d84e0f902c65be9863e3250b1fae3355.png

  Esquema básico del funcionamiento interno de ReactOS, como vemos se vale de varias librerías para conseguir que aplicaciones Windows se ejecuten correctamente en este sistema operativo.

Escritorio de ReactOS

Colaboración y reutilización


  Si bien ReactOS tiene el objetivo de construir un núcleo o kernel compatible con Windows como software de código abierto, gran parte de la funcionalidad necesaria para crear un SO completo ya está disponible como código abierto. Por lo tanto, si está disponible y es posible, ReactOS  colabora con proyectos de código abierto ya existentes.​ A la inversa, proyectos como Wine,​ Longene y otros también reutilizan el código base abierto de ReactOS.

Pila de controladores de hardware 

  ReactOS se vale de diversos proyectos como ya se indicó para implementar la funcionalidad que necesita, un ejemplo de ello es la biblioteca FullFAT en su reescritura de su sistema de archivos instalables FAT. ReactOS hace uso del apilamiento USB de Haiku tanto como referencia como base para su soporte USB, igualmente el software Mesa 3D proporciona una renderización de OpenGL.

Colaboración de Wine

  Tanto el proyecto ReactOS como Wine comparten el objetivo de ejecutar software binario de Windows de forma nativa y por tanto, puede compartir muchas dependencias y desarrollo.​ ReactOS usa porciones del proyecto Wine para que pueda beneficiarse de sus avances en la ejecución de aplicaciones Windows. 

  Sin embargo no todas las partes son compatibles entre los proyectos, por esta razón implementa sus propias librerías para resolver el problema, un ejemplo de ello fue el proyecto ARWINSS. ARWINSS combina la arquitectura de ReactOS hasta el momento con Wine; con este fin, ARWINSS utiliza las bibliotecas de Wine y USER32 y GDI32 con algunos cambios para obtener más ventaja en la compatibilidad de Wine con el software existente. ARWINSS también permite al usuario utilizar un servidor X remoto en lugar de una pantalla local.

Redes

  La pila de red de ReactOS está construida a partir de la porción TCP del puerto OSKit de la pila de red de FreeBSD, junto con una aplicación desarrollada internamente para protocolos orientados a paquetes, como IP. Posteriormente, en la pila de red de ReactOS, se integró lwIP. Los servicios de red de Windows ya están disponibles como alternativa de código abierto como LSASS, SAM, NETLOGON, las colas de impresión del proyecto Samba/Samba TNG. Como una implementación de software cliente para el protocolo de escritorio remoto, propietario de Microsoft, se utiliza un tenedor de rdesktop.

Otros 

  La iniciativa Tango Desktop Project proporciona directrices de diseño de código abierto y recursos (como iconos) para aplicaciones en entornos de escritorio. FreeType es una biblioteca de desarrollo de software de código abierto, usado para representar texto en mapas de bits y proporciona soporte para otras operaciones relacionadas con las fuentes.​ El proyecto KernelEx es una extensión de las APIS de Windows y capa de compatibilidad del proyecto, que proporciona implementaciones de código abierto de algunas APIS de Windows. Otros proyectos que contribuyen son MinGW, Syslinux, adns, ICU, GraphApp, Ext2, GNU FreeFont, fuentes DejaVu, y fuentes Liberation.

Conclusiones:

  ReactOS es un sistema operativo que aspira a convertirse en una alternativa a Windows, concretamente a Windows XP con una arquitectura compatible con Windows NT pero implementada desde cero y usando fragmentos de otros proyectos para acelerar su desarrollo.

  ReactOS usa licencias de software libre, por lo que cualquiera puede estudiar su funcionamiento y tomar ideas del mismo para otros desarrollos. El desarrollo del proyecto ha continuado desde entonces, hasta la redacción de este artículo la última versión liberada es la 0.4.14 (diciembre de 2021) y aunque ReactOS todavía está en desarrollo recordemos que ya es compatible con muchas aplicaciones de Windows y sigue mejorando.

  ¿Han llegado a usar este sistema operativo?, los invito a dejar sus comentarios al respecto, un agradecimiento de antemano.


  ReactOS is a free and open source operating system that is based on the Windows NT architecture, provides support for existing drivers and applications, and is an alternative to the Windows XP operating system.

  ReactOS has been in development since 1996; Although it has incomplete features, many Windows applications (XP and below) already work (for example, Adobe Reader 6.0, OpenOffice, etc.), therefore it is recommended for evaluation and testing purposes only.

  ReactOS is primarily written in C, with some elements, such as ReactOS Explorer's File Explorer, written in C++. The project partially implements Windows API functionality and has been ported to the AMD64 processor architecture. ReactOS, as part of the FOSS ecosystem, reuses and collaborates with many other free software projects, most notably the Wine project. , which develops a Windows compatibility layer for Unix-based operating systems.

Basic development of ReactOS

  ReactOS is primarily written in C, with some elements, such as the ReactOS Explorer and the sound stack, written in C++. The project builds based on MinGW, the developers intend to make the kernel and user-mode APIs more compatible with Windows NT version 5.2 (Windows Server 2003) and add support for more applications and hardware with plans to target newer versions of Windows as development matures. DirectX support is through ReactX, an internal implementation. Hardware-accelerated 2D rendering is done natively, while other drawing functionality is redirected to OpenGL as a workaround.

  Development progress is influenced by the size of the development team and their level of experience. As an estimate of the effort required to implement Windows 7, Microsoft employs 1,000 or more developers, organized into 25 teams, with each team averaging 40 developers. As of September 2, 2011, there are known to be about 33 developers. who have contributed over a 12-month period and a cumulative total as of 2016 of 104 current and former users who have contributed code to the project via subversion since its inception. In his presentation at hackmeeting 2009, in Milan, ReactOS developer Michele C. noted that most developers learn about Windows architecture while working on ReactOS without having any prior knowledge.

  Although current ReactOS targets are primarily the x86/AMD64 PC platform,84 it has also been partially ported to ARM architectures. Support for the Xbox, a variant of the IA-32 architecture, was added through the use of a specific HAL architecture, although this, along with a port for PowerPC, are no longer actively maintained.

f9751cbba6c3e1e686709a54d2ccbbd6d84e0f902c65be9863e3250b1fae3355.png

  Basic scheme of the internal operation of ReactOS, as we can see, it uses various libraries to ensure that Windows applications run correctly on this operating system.

Escritorio de ReactOS

Collaboration and reuse


  While ReactOS aims to build a Windows-compatible kernel as open source software, much of the functionality needed to build a complete OS is already available as open source. Therefore, where available and possible, ReactOS collaborates with existing open source projects. Conversely, projects like Wine, Longene, and others also reuse the open source codebase of ReactOS.

Hardware driver stack

  ReactOS uses various projects as indicated above to implement the functionality it needs, an example of which is the FullFAT library in its rewrite of its FAT installable file system. ReactOS makes use of Haiku's USB stack as both a reference and the basis for its USB support, while the Mesa 3D software provides OpenGL rendering.

wine collaboration

  Both the ReactOS project and Wine share the goal of running Windows binary software natively and can therefore share many dependencies and development. ReactOS uses portions of the Wine project so that it can take advantage of its advances in running Windows applications.

  However, not all parts are compatible between projects, for this reason it implements its own libraries to solve the problem, an example of this was the ARWINSS project. ARWINSS combines the ReactOS architecture so far with Wine; to this end, ARWINSS uses the Wine and USER32 and GDI32 libraries with some changes to gain more advantage in Wine's compatibility with existing software. ARWINSS also allows the user to use a remote X server instead of a local screen.

Networks

  The ReactOS network stack is built from the TCP portion of the OSKit port of the FreeBSD network stack, along with an in-house developed implementation for packet-oriented protocols such as IP. Later, in the ReactOS networking stack, lwIP was integrated. Windows network services are already available as an open source alternative like LSASS, SAM, NETLOGON, the Samba/Samba TNG project spoolers. As a client software implementation for Microsoft's proprietary Remote Desktop Protocol, a fork of rdesktop is used.

Others

  The Tango Desktop Project initiative provides open source design guidelines and resources (such as icons) for applications in desktop environments. FreeType is an open source software development library, used to render text in bitmaps and provides support for other font-related operations. The KernelEx project is an extension to the Windows APIs and project compatibility layer, which provides open source implementations of some Windows APIs. Other contributing projects are MinGW, Syslinux, adns, ICU, GraphApp, Ext2, GNU FreeFont, DejaVu fonts, and Liberation fonts.

Conclusions:

  ReactOS is an operating system that aspires to become an alternative to Windows, specifically to Windows XP with an architecture compatible with Windows NT but implemented from scratch and using fragments from other projects to speed up development.

  ReactOS uses free software licenses, so anyone can study how it works and take ideas from it for other developments. The development of the project has continued since then, until the writing of this article the last version released is 0.4.14 (December 2021) and although ReactOS is still under development, let's remember that it is already compatible with many Windows applications and continues to improve.

Have you come to use this operating system? I invite you to leave your comments about it, thank you in advance.

How do you rate this article?

3


marjuanm
marjuanm

I'm a VB.NET Programmer, but too programming on PHP, greetings.


msproys
msproys

Blog informático para dar a conocer mis proyectos, soy desarrollador de sistemas y partidario del software libre. Por medio de este blog estaré dando a conocer algunos de mis trabajos, así como publicando diversos códigos fuentes útiles.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.