ReactOS

ReactOS (React Operating System) es un sistema operativo libre y de código abierto para PC x86/x64 desarrollado para ser compatible a nivel binario con programas informáticos y controladores de dispositivos diseñados para Microsoft Windows Server 2003 y versiones posteriores. ReactOS ha sido señalado como un posible reemplazo drop-in de código abierto para Windows y por su información sobre las APIs de Windows indocumentadas.

ReactOS se encuentra en desarrollo desde 1996.  ReactOS se considera software alfa, que, si bien posee características incompletas, muchas aplicaciones de Windows ya funcionan (por ejemplo, Adobe Reader 6.0, OpenOffice, etc.), y por lo tanto es recomendado por desarrolladores 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.

Historia

Misión 
Como se afirma en el sitio web oficial,

Primeros desarrollos 
Alrededor de 1996 un grupo de programadores y desarrolladores de software libre comenzaron un proyecto llamado FreeWin95 el cual consistía en implementar un clon de Windows 95. El proyecto estuvo bajo discusión por el diseño del sistema ya habiendo desarrollado la capa compatible con MS-DOS, pero esta fue una situación que no se completó.

Si bien FreeWin95 había comenzado con grandes expectativas, hacia fines de 1997 aún no se había publicado versiones para el público. Como resultado, los miembros del proyecto, dirigidos por el coordinador de Jason Filby, se unieron para reactivar el proyecto. Este reactivación trató de duplicar la funcionalidad de Windows NT. En la creación del nuevo proyecto, se eligió un nuevo nombre, ReactOS. El proyecto comenzó su desarrollo en febrero de 1998 con la creación la base de un nuevo núcleo de NT y controladores básicos. El nombre de ReactOS fue acuñado por el fundador del proyecto Jeff Knox. Si bien el término "OS" hace referencia a "sistema operativo" (operating system, en inglés), el término React "reaccionar" se refiere a la insatisfacción del grupo con - y la reacción  - a la posición de monopolio de Microsoft.

Distribución Ekush OS 
En 2004, se encontró una violación de derechos de autor en el código GPL de ReactOS (y otro tipo de código de software libre) cuando alguien distribuyó una copia de ReactOS bajo el nombre de Ekush OS.  Más tarde la página web se puso fuera de línea.

Auditoría interna 
Con el fin de evitar litigios debido a los derechos de autor, ReactOS tiene que ser expresamente y completamente distinto y no derivado de Windows, un objetivo que necesita un trabajo muy cuidadoso. La afirmación fue hecha el 17 de enero de 2006 por el ex-desarrollador Hartmut Birr en la lista de correo de desarrolladores de ReactOS (ros-dev), afirmando que contenía un código de ReactOS derivado del desmontaje de Microsoft Windows. El código que Birr disputa implicó la función BadStack en syscall.S, así como otros casos no especificados. Comparando esta función con los binarios desensamblados de Windows XP, Birr argumentó que la función BadStack fue simplemente copiar y pegar de Windows XP, ya que eran idénticos. Alex Ionescu, el autor del código, afirmó que si bien el binario de Windows XP en cuestión fue desmontado y estudiado en efecto, el código no se limita a copiar-pegar, sino de ser reimplementado. La razón por la cual las funciones son idénticas, según Ionescu, son porque solo había una forma posible de implementar la función.

El 27 de enero de 2006, el equipo de ReactOS decidió suspender temporalmente el acceso a los archivos del sistema operativo para los no-desarrolladores, después de una reunión para verificar la afirmación de que el proyecto habría sido contaminado con el código con derechos de autor de Microsoft. Sin embargo, al ser abordados por NewsForge, Microsoft no quiso hacer comentarios sobre el incidente. Siendo el proyecto de desarrollo de ReactOS un software libre y de código abierto, la demanda provocó una reacción negativa de la comunidad del software libre. En particular, Wine prohibió a algunos desarrolladores de ReactOS contribuir a su código, citando preocupaciones sobre el origen de sus contribuciones. Wine prohibió a algunos desarrolladores que en 2016 estaban inactivos de proporcionar contribuciones y la cooperación formal de alto nivel entre los dos proyectos sigue siendo difícil hacia 2016. Las contribuciones de varios desarrolladores de ReactOS activos han sido aceptadas después de la auditoría, y se sigue produciendo cooperación a bajo nivel para la corrección de errores.

En un comunicado publicado en su página web, ReactOS cita diferentes definiciones legales de lo que constituye la sala limpia de ingeniería inversa como una de las causas del conflicto. En algunos países, incluyendo Estados Unidos, requieren que la reimplementación del código desensamblado esté escrita por alguien que no sea la persona que ha desmontado y examinado el código original, mientras que en otros países se permitirán que ambas tareas sean realizadas por un mismo individuo. En consecuencia, ReactOS aclaró su Declaración de Política de Requisitos de Propiedad Intelectual de la sala limpia de ingeniería inversa conforme a la ley EE.UU. Con el objetivo de asegurar que solo se utilizaba sala limpia de ingeniería inversa se llevó a cabo una auditoría de código interno, y todos los desarrolladores fueron obligados a firmar un acuerdo comprometiéndose a cumplir con las políticas del proyecto de ingeniería inversa. Los contribuidores del desarrollo no se vieron afectados por estos eventos, y todo el acceso a las herramientas de desarrollo de software se restableció poco después. En septiembre de 2007, con la realización de auditoría a punto, el estado de auditoría fue retirado de la página web de ReactOS. Aunque se haya realizado la auditoría, los detalles específicos no se hicieron públicos, ya que solo fue un esfuerzo interno para asegurar el cumplimiento de las propias políticas del proyecto.

La mayor parte del código ensamblador, que al parecer también fue copiado, ha sido sustituido como una progresión natural en el desarrollo de ReactOS, con los desarrolladores habiendo reimplementado la funcionalidad en C por razones de portabilidad.

Además, el código fuente de Windows filtrado en 2004 no fue visto como un riesgo legal de ReactOS, ya que el secreto profesional fue considerado indefendible en los tribunales debido a la gran dispersión.

Demostración a figuras políticas 

Se han dado demostraciones del sistema operativo, principalmente a figuras políticas rusas. En 2007, Viktor Alksnis se reunió con el coordinador del proyecto Aleksey Bragin, quien hizo una presentación y demostración del proyecto, mostrando a Total Commander y Mozilla Firefox ejectándose en ReactOS.

En 2011, Dmitri Medvédev también hizo, durante una visita, una demostración como presidente de Rusia para una escuela secundaria en Verhnerusskoe, Stávropol, asistido por uno de los miembros del equipo de desarrollo.

El 31 de julio de 2012, Vladímir Putin también hizo una demostración durante su visita como Presidente de Rusia a Foro Seliger de la Juventud, al que asistieron Marat Karatov, uno de los integrantes del equipo de desarrollo.

Campañas de financiación 
El 1 de mayo de 2012, una campaña de financiación de 30 000 euros comenzó a financiar proyectos de desarrollo adicionales. En el final del año se alcanzó aproximadamente el 50% del objetivo de financiación y se decidió continuar con la campaña de financiación sin establecer plazos. El dinero fue a ReactOS Deutschland e. V.. Como el derecho tributario en Alemania para esta forma de asociación voluntaria registrada (Eingetragener Verein) hace que sea problemático pagarle directamente a los desarrolladores, se evaluaron posibilidades indirectas, como estipendios.

Proyecto Thorium Core Cloud Desktop 
Cuando en junio de 2013 ReactOS fue galardonado en SourceForge como el Proyecto del Mes, Kickstarter anunció una campaña en una entrevista con el coordinador del proyecto, Aleksey Bragin.<ref name="potm-201306">{{cita web |url=http://sourceforge.net/blog/potm-201306/ |título=Sourceforge POTM June 2013 |editorial=Sourceforge.com |fecha=17 de junio de 2013 |fechaacceso=17 de junio de 2013|cita=Bueno, yo no quiero difundir demasiados rumores, pero puedo decir que tenemos algo en obras. Si todo va bien, va a ser anunciado dentro de una semana. Aunque no puedo entrar en muchos detalles, puedo decir que se trata de Kickstarter y lo que creemos que es un producto comercial viable con sede fuera de ReactOS.}}</ref>

El 23 de diciembre de 2013, el proyecto anunciado se reveló como una campaña de Kickstarter con que se inició la meta de $ 120.000. El Thorium Core Cloud Desktop apodado servicio de Computación en la Nube usaría ReactOS como núcleo y podría permitir el uso de las aplicaciones compatibles con Windows desde dispositivos móviles (como teléfonos inteligentes, tabletas), estaciones de trabajo o cualquier otro dispositivo conectado. El 21 de febrero de 2014, terminó la recaudación de fondos por debajo del importe objetivo, con solo US$ 48 965 de los US$ 120 000 planteado.

 ReactOS Community Edition 
En abril de 2014, el proyecto ReactOS anunció una campaña de Indiegogo lanzando ReactOS Community Edition, una versión de ReactOS basada en la versión 0.4. La flexible campaña de financiación tenía una meta de US $ 50,000 con metas de estiramiento adicionales más allá de este. El Desarrollo de ReactOS Community Edition estaría centrado en la comunidad, con los usuarios de ReactOS votando y decidiendo cuáles controladores de software y hardware el proyecto investigará como añadirle soporte. El 1 de junio de 2014, la flexible campaña de financiación colectiva en Indiegogo terminó con la suma de $ 25.141 para el desarrollo de la Community Edition,reactos-community-edition en Indiegogo (1 de junio de 2014) y el proceso de votación para soportar hardware y software se inició poco después.

 ReactOS Hackfest 2015 
El proyecto ReactOS organizó un Hackfest del 7 al 12 de agosto de 2015, en la ciudad alemana de Aquisgrán.Russland macht ReactOS zu bevorzugter Windows-Alternative en Der Standard "Von 7. bis 12. August lädt die Entwicklergemeinde in Deutschland zum ersten ReactOS-Hackfest, das in Aachen über die Bühne gehen wird." (24 de junio de 2015, en Alemania)

 Participaciones en Google Summer of Code 
6 veces - 2006, 2011, 2016, 2017, 2018, 2019.

 ReactOS Hackfest 2017 

El proyecto ReactOS organizó una nueva edición de su Hackfest del 14 al 18 de agosto de 2017, en la ciudad alemana de Colonia.

 Historial de versiones 

Muchas herramientas de desarrollo entre API y ABI están listas para un nivel alto de desarrollo y una interfaz básica en GUI también lo está. ReactOS también posee ReactOS Explorer, una interfaz de usuario similar al ya conocido Explorador de Windows.

 Desarrollo 
 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, y se contribuye a su desarrollo a través de la presentación de los parches a sus componentes.

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, en la entrada de ReactOS en Ohloh, la página seguida a través del "equipo de desarrollo muy grande, activo" enlaza enumera 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, 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.

 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 en el mayor ecosistema de código abierto. Por lo tanto, si está disponible y es posible, se basa en ReactOS y colabora con proyectos de código abierto ya existentes. A la inversa, proyectos como Wine, Captive NTFS o Longene también reutilizan el código base abierto de ReactOS.

 Pila de controladores de hardware 

Por el lado del controlador de hardware, por ejemplo, el proyecto NTFS-3G proporciona un controlador NTFS y UniATA proporciona un controlador Serial ATA para ReactOS. El proyecto también ha sido también experimentado con el uso de 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. 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 aplicación de Win32 API. NTDLL, USER32, KERNEL32, GDI32 y componentes de Advapi no pueden ser utilizados debido a sus diferencias con la arquitercura de ReactOS, pero las otras partes del código pueden ser compartidas entre ambos proyectos. Los componentes que no están disponibles desde Wine se desarrollan por separado.

Por otra parte, como un medio alternativo para mejorar el apoyo de USER32 y GDI32, se creó la rama experimental ARWINSS, a través de una implementación alternativa de la API Win32. Considerando que el subsistema original Win32 de ReactOS fue modelado después de su equivalente en Windows, ARWINSS combina la arquitectura de ese subsistema con la aplicación correspondiente en 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.

 Arquitecturas soportadas 

ReactOS soporta varias arquitecturas:
 IA-32.
 Xbox (Regresión).
 PowerPC. (Detenido)
 ARM (Arranque parcial).
 AMD64 (Arranque parcial).

Windows NT 4.0 fue portado a otras arquitecturas de IA-32 como MIPS, Alpha AXP y PowerPC, y los derivados de NT han sido tratados de manera similar, como Windows XP portado a AMD64, y Windows Server 2003 portado a AMD64 e Itanium. En vista de esto, los desarrolladores de ReactOS lo han portado parcialmente a las arquitecturas AMD64 y ARM. 
El soporte para la Xbox, una variante de la IA-32, se añadió a través de una arquitectura específica de la HAL, aunque esta, junto con el soporte para PowerPC, ya no es mantenido activamente.

 Recepción 
Varias personas han reconocido a ReactOS y las implicaciones de tener un reemplazo viable de código abierto para sustituir a Windows.
Un artículo y entrevista de 2004 del semanario alemán Der Spiegel describe a ReactOS como dirigido a los usuarios de Windows que quieran renunciar uso de software propietario comercial sin tener que cambiar a Linux. Asimismo, DistroWatch, un sitio web de seguimiento de distribuciones Linux, enumera a ReactOS y lo describe como "un sistema operativo gratuito y de código abierto basado en los mejores principios de diseño que se encuentran en la arquitectura de Windows NT"''.

En su columna para la Free Software Magazine, David Sugar señaló en 2006 que ReactOS podría permitir el uso de aplicaciones en función de las versiones anteriores de Windows, cuyas APIs han sido desechadas. Así mismo, reconoció su potencial para ampliar la base total del despliegue del software libre, y como un recurso para los desarrolladores que desean saber sobre las APIs indocumentadas de Windows en el curso de escritura de aplicaciones portátiles. En 2008, John C. Dvorak, columnista de PC Magazine, señaló que la arquitectura de Windows NT se ha mantenido prácticamente igual hasta ahora, por lo que es un candidato ideal para su clonación, y cree que ReactOS podría ser "una amenaza mayor que Linux para el dominio de Microsoft". En respuesta a la columna de Dvorak, la periodista Dana Blankenhorn de ZDNet technology señala que la falta de patrocinadores corporativos y socios ha prestado el proyecto inocuo a Microsoft. Haciendo eco de esto, Thom Holwerda de OSNews clasifica a ReactOS en una familia de sistemas operativos aficionados que se mantienen solo por pequeños grupos de desarrolladores que trabajan en su tiempo libre, y que no cuenta con el apoyo financiero que tienen los principales sistemas operativos, ni con el legado de otros sistemas más antiguos y utilizados, como RISC OS.

En octubre de 2015, una revisión de ReactOS v0.3.17 de Network World señaló impresionado "Es igual que ejecutar Windows 2000" y elogió al administrador de paquetes de aplicaciones, una característica que perdió el Windows original.

Premios 
El proyecto ReactOS ganó en la premio como "Mejor Presentación" del anual Foro de la Juventud Seliger con 100.000 rublos rusos en 2011, al que asistieron Alexander Rechitskiy, uno de los miembros del equipo de desarrollo.

ReactOS fue un proyecto destacado en SourceForge para la semana que comenzó el 27 de febrero de 2012 hasta el 25 de abril de 2013 junto con varios otros. También fue el Proyecto del Mes en Sourceforge hasta junio de 2013 y en febrero de 2019.

En 2015, ReactOS fue nombrado por el Ministerio de Comunicaciones de Rusia como un «sistema operativo cliente/servidor» alternativo digno de apoyar por su potencial en la reducción de la dependencia de Rusia de las importaciones de software propietario.

Véase también 

 FreeDOS, un clon de MS-DOS.
 Wine, capa de compatibilidad que ejecuta aplicaciones de Microsoft Windows en sistemas operativos basados en Unix.
 Longene, un núcleo híbrido del sistema operativo concebido para ser compatible binariamente tanto con el ecosistema de Microsoft Windows como de Linux.
 NDISwrapper, una recreación de partes de núcleo de Windows NT en el interior del núcleo Linux para permitir el uso de controladores de Windows en Linux.
 Haiku, un clon de BeOS de código abierto.
 coLinux, un proyecto que permite que Microsoft Windows y el núcleo Linux funcionen simultáneamente en paralelo en la misma máquina.

Referencias

Enlaces externos 

 Páginas web oficiales
 Sitio oficial de ReactOS 
 

Comentarios y entrevistas

 
 Revisión detallada de ReactOS (de 2006) 
 
 

Software de 1998
Software alfa
Sistemas operativos libres
Live CD
Software libre programado en C
Software libre programado en C++
Sistemas operativos basados en ventanas
Sistemas operativos x86
Sistemas operativos x64-86