ReactOS es un sistema operativo gratuito y de código abierto para computadoras personales i586 / amd64 destinado a ser compatible binariamente con programas informáticos y controladores de dispositivos desarrollados para Windows Server 2003 y versiones posteriores de Microsoft Windows. [5] [6] ReactOS ha sido señalado como un posible reemplazo directo de código abierto para Windows [7] [8] [9] y por su información sobre API de Windows no documentadas . [10]
ReactOS ha estado en desarrollo desde 1996. En abril de 2024 , todavía se considera software alfa con[actualizar] funciones incompletas y, por lo tanto, los desarrolladores lo recomiendan solo con fines de evaluación y prueba. [11] [12] Sin embargo, muchas aplicaciones de Windows funcionan, como Adobe Reader 9.3, GIMP 2.6 y LibreOffice 5.4. [13] [14]
ReactOS está escrito principalmente en C , con algunos elementos, como ReactOS File Explorer , escrito en C++ . El proyecto implementa parcialmente la funcionalidad API de Windows y ha sido portado a la arquitectura del procesador AMD64 . [15] ReactOS, como parte del ecosistema FOSS , reutiliza y colabora con muchos otros proyectos FOSS, [16] [17] más notablemente el proyecto Wine , que presenta una capa de compatibilidad de Windows para sistemas operativos tipo Unix .
Alrededor de 1996, un grupo de desarrolladores de software gratuito y de código abierto iniciaron un proyecto llamado FreeWin95 para implementar un clon de Windows 95 . El proyecto se estancó en las discusiones sobre el diseño del sistema.
Si bien FreeWin95 había comenzado con grandes expectativas, todavía no se había lanzado ninguna versión al público a finales de 1997. Como resultado, los miembros del proyecto, liderados por el entonces coordinador Jason Filby, se unieron para revivir el proyecto. El proyecto revivido buscaba duplicar la funcionalidad de Windows NT . [18] Al crear el nuevo proyecto, se eligió un nuevo nombre, ReactOS . El proyecto comenzó a desarrollarse en febrero de 1998 creando la base para un nuevo kernel NT y controladores básicos. [19] [20] El nombre ReactOS fue acuñado durante un chat IRC. Mientras que el término "OS" significaba sistema operativo, el término "reaccionar" se refería a la insatisfacción del grupo con la posición monopolística de Microsoft y su reacción ante ella . [8]
En 2002, se estableció la Fundación ReactOS en Moscú con Maxim Osowski y Aleksey Bragin como directores ejecutivos y Vladimir Bragin, Saveliy Tretiakov y Alexey Ivanov en la junta directiva. [21] En 2015, la fundación fue liquidada. [22]
Para evitar demandas por derechos de autor, ReactOS tenía que ser expresamente completamente distinto y no derivado de Windows, un objetivo que requería un trabajo muy cuidadoso. [23] El 17 de enero de 2006, el desarrollador Hartmut Birr afirmó en la lista de correo de desarrolladores de ReactOS (ros-dev) que ReactOS contenía código derivado del desmontaje de Microsoft Windows. [24] El código que Birr cuestionó involucraba la función BadStack en syscall.S, [25] así como otros elementos no especificados. [26] Comparando esta función con los binarios desensamblados de Windows XP , Birr argumentó que la función BadStack simplemente fue copiada y pegada de Windows XP, dado que eran idénticas. Alex Ionescu, el autor del código, afirmó que si bien el binario de Windows XP en cuestión fue desensamblado y estudiado, el código no fue simplemente copiado y pegado, sino que se volvió a implementar; La razón por la que las funciones eran idénticas, afirmó Ionescu, era porque sólo había una forma posible de implementar la función. [27]
El 27 de enero de 2006, los desarrolladores responsables de mantener el repositorio de códigos de ReactOS desactivaron el acceso después de que se celebró una reunión para discutir las acusaciones. Cuando NewsForge se acercó , Microsoft se negó a comentar sobre el incidente. Dado que ReactOS es un proyecto de desarrollo de software gratuito y de código abierto , el reclamo provocó una reacción negativa de la comunidad de software libre ; en particular, Wine prohibió a varios desarrolladores inactivos realizar contribuciones [ cita necesaria ] y la cooperación formal de alto nivel entre los dos proyectos seguía siendo difícil en 2006 [actualizar]. [28]
En una declaración en su sitio web, ReactOS citó diferentes definiciones legales de lo que constituye ingeniería inversa en sala limpia como causa del conflicto. [29] Para evitar posibles litigios, las empresas a veces promulgan una política según la cual la reimplementación basada en el código desensamblado debe ser escrita por alguien que no sea la persona que desensambló y examinó el código original. [30] [31] ReactOS aclaró los requisitos de su Declaración de política de propiedad intelectual sobre ingeniería inversa de salas limpias para evitar una posible infracción de la ley de los Estados Unidos. Se llevó a cabo una auditoría interna del código fuente para garantizar que solo se utilizara ingeniería inversa de sala limpia, y se obligó a todos los desarrolladores a firmar un acuerdo comprometiéndose a cumplir con las políticas del proyecto sobre ingeniería inversa. [28] Los contribuyentes a su 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, cuando la auditoría estaba a punto de finalizar, el estado de la auditoría se eliminó de la página de inicio de ReactOS. Aunque la auditoría se completó, no se hicieron públicos detalles específicos, ya que fue solo un esfuerzo interno para garantizar el cumplimiento de las políticas propias del proyecto. [32]
Además, el código fuente de Windows filtrado en 2004 [33] no se consideró un riesgo legal para ReactOS, ya que el secreto comercial se consideró indefendible ante los tribunales debido a su amplia difusión. [34]
Axel Rietschin, ingeniero de kernel en Microsoft, afirmó que reconoció algunos bits específicos en el kernel de ReactOS que es poco probable que resulten de una reimplementación en sala limpia. Sugiere que el proyecto tomó el código fuente del Windows Research Kernel, que tenía licencia para universidades y se filtró varias veces. Las estructuras de datos internas y los nombres de las variables tienen exactamente el mismo nombre tanto en ReactOS como en el núcleo de investigación. [35]
A partir de 2006, [36] el proyecto ReactOS participó en varios Google Summers of Code . Por ejemplo, en el GSoC 2011, [37] ReactOS fue mentor de un proyecto estudiantil que integraba lwIP en la pila de red. [38]
Entre 2007 y 2015, los contribuyentes rusos de ReactOS que representan a la Fundación ReactOS hicieron esfuerzos para presionar al gobierno federal ruso. Hasta abril de 2019 [actualizar], estos esfuerzos no han generado apoyo gubernamental para ReactOS, y la Fundación ReactOS con sede en Rusia ha sido disuelta desde noviembre de 2015. [22]
El 1 de mayo de 2012 se inició una campaña de financiación de 30.000 euros para financiar proyectos de desarrollo adicionales. [46] [47] Al final del año, se logró aproximadamente el 50% de la meta de financiamiento y se decidió continuar la campaña de financiamiento sin plazos. [48] El dinero se destinó a ReactOS Deutschland e. V. . Dado que la legislación fiscal en Alemania para esta forma de asociación voluntaria registrada ( Eingetragener Verein ) hace problemático pagar directamente a los promotores; [49] Se evaluaron posibilidades indirectas como estipendios .
Cuando ReactOS fue premiado como Proyecto del Mes en SourceForge en junio de 2013, se anunció una campaña de financiación colectiva en Kickstarter en una entrevista con el coordinador del proyecto, Aleksey Bragin. [50] El 23 de diciembre de 2013, el proyecto anunciado se reveló como una campaña en Kickstarter con el objetivo de recaudar 120.000 dólares estadounidenses. [51] [52] El servicio de computación en la nube Thorium Core Cloud Desktop utilizaría ReactOS como núcleo y podría permitir el uso de 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, la recaudación de fondos terminó por debajo del monto objetivo, con $48,965 de $120,000 recaudados, lo que resultó en que no se transfiriera dinero. [53]
En abril de 2014, el proyecto ReactOS anunció una campaña en Indiegogo para lanzar ReactOS Community Edition, una versión de ReactOS basada en la versión 0.4. La campaña de financiación flexible tenía un objetivo de 50.000 dólares con objetivos adicionales más allá de eso. [54] El desarrollo de ReactOS Community Edition estaría centrado en la comunidad, y los usuarios de ReactOS votarían y financiarían para decidir qué controladores de software y hardware intentará soportar el proyecto. [55] [56] El 1 de junio de 2014, finalizó la campaña de financiación colectiva flexible en Indiegogo, recaudando 25.141 dólares para el desarrollo de la edición comunitaria, [57] [58] y poco después se inició el proceso de votación para respaldar el hardware y el software. [59]
El proyecto ReactOS organizó un hackfest del 7 al 12 de agosto de 2015, en la ciudad alemana de Aquisgrán . [60] [61] [62] El Hackfest resultó en la adición de muchas características a ReactOS.
El segundo hackfest fue organizado por el proyecto ReactOS del 14 al 18 de agosto de 2017, en la ciudad alemana de Colonia . [63]
El tercer y cuarto hackfest fueron organizados por el proyecto ReactOS del 16 al 21 de agosto de 2018 y del 15 al 20 de agosto de 2019 en Berlín respectivamente. [64] [65]
La siguiente es una lista no exhaustiva de comandos compatibles con el símbolo del sistema de ReactOS . [112] [113] [114]
ReactOS está escrito principalmente en C , con algunos elementos, como ReactOS Explorer y la pila de sonido, escritos en C++ . El proyecto compila utilizando MinGW y Microsoft Visual Studio y contribuye al desarrollo de los sistemas de compilación utilizados mediante el envío de parches a sus componentes. [118]
Los desarrolladores pretenden hacer que la interfaz de programación de aplicaciones (API) del kernel y del modo de usuario sea más compatible con Windows NT versión 5.2 ( Windows Server 2003 ) y agregar soporte para más aplicaciones y hardware, con planes de apuntar a versiones más nuevas de Windows a medida que madure el desarrollo. [119] El soporte de DirectX se realiza a través de ReactX, una implementación interna. La renderización acelerada por hardware 2D y OpenGL 3D se realiza de forma nativa, mientras que otras funciones de dibujo, como Direct3D , se redirigen a OpenGL como solución provisional, principalmente utilizando el código de Wine , como WineD3D . [15] [120]
El progreso del desarrollo está influenciado por el tamaño del equipo de desarrollo y el nivel de experiencia entre ellos. Como estimación del esfuerzo necesario para implementar Windows 7 , Microsoft empleó aproximadamente 1.000 desarrolladores, organizados en 25 equipos, cada equipo con un promedio de 40 desarrolladores. [121] Al 2 de septiembre de 2011 [update], en la entrada de ReactOS en Ohloh , la página seguida por el enlace "Equipo de desarrollo activo muy grande" enumera 33 desarrolladores que han contribuido durante un período de 12 meses y un total acumulado de 104 presentes y Antiguos usuarios que han contribuido con código al proyecto a través de Apache Subversion desde sus inicios. [122] En su presentación en Hackmeeting 2009 en Milán, el desarrollador de ReactOS, Michele C., señaló que la mayoría de los desarrolladores aprenden sobre la arquitectura de Windows mientras trabajan en ReactOS y no tienen conocimientos previos. [123]
Si bien ReactOS se dirige principalmente a la plataforma de PC x86 / AMD64 , [124] en un momento estaba "en marcha" un esfuerzo para migrar a la arquitectura ARM , [15] aunque no produjo mucha funcionalidad y fue abandonado [125] junto con una puerto a PowerPC , que ya no se mantiene activamente. [11] Se agregó soporte para Xbox y NEC PC-9800 , una variante de la arquitectura IA-32 , mediante el uso de un HAL específico de la arquitectura . [123] [109] [3] Se está "trabajando en la compatibilidad mejorada de 64 bits para ReactOS", sin embargo, el desarrollo parece ir lentamente. [126]
Si bien ReactOS tiene como objetivo construir un kernel compatible con Windows como software de código abierto, gran parte de la funcionalidad necesaria para crear un sistema operativo completo ya está disponible en el ecosistema de código abierto más amplio. Cuando esté disponible y sea posible, ReactOS se basará en proyectos de código abierto ya existentes y colaborará con ellos. [16] Por el contrario, proyectos como Wine , [17] y anteriormente Captive NTFS [127] y Longene también reutilizan el código base de código abierto de ReactOS. [128]
En el lado del controlador de hardware , por ejemplo, el proyecto UniATA proporciona controladores Serial ATA para ReactOS. [12] [129] El proyecto también ha experimentado con el uso de la biblioteca FullFAT en su reescritura de su sistema de archivos instalable FAT . [130] ReactOS utiliza la pila USB de Haiku como referencia y como base para su soporte USB. [131] [132] Mesa 3D proporciona renderizado OpenGL . [12] [118]
La pila de red de ReactOS se basa en la porción TCP del puerto de la pila de red de OSKit en FreeBSD , junto con una implementación desarrollada internamente para protocolos orientados a paquetes como IP . [133] Más tarde, lwIP se integró en la pila de red ReactOS. [38]
Los proyectos ReactOS y Wine comparten el objetivo de ejecutar software binario de Windows de forma nativa y, por lo tanto, pueden compartir muchas dependencias y desarrollo. [17] [134] ReactOS utiliza partes del proyecto Wine para poder beneficiarse del progreso de Wine en la implementación de la API Win32 . [134] Si bien los componentes NTDLL , USER32 , KERNEL32 , GDI32 y ADVAPI32 de Wine no pueden ser utilizados directamente por ReactOS debido a diferencias arquitectónicas, fragmentos de código de ellos y otras partes se pueden compartir entre ambos proyectos. El kernel es desarrollado por ReactOS por separado, ya que Wine se basa aquí en kernels similares a Unix existentes. [118] [123]
Por otra parte, se creó la rama experimental Arwinss como un medio alternativo para mejorar el soporte de USER32 y GDI32 a través de una implementación alternativa de la API de Win32. Mientras que el subsistema Win32 original de ReactOS fue modelado estrechamente a partir de su equivalente en Windows, Arwinss combina la arquitectura de ese subsistema con la implementación correspondiente en Wine. Con este fin, Arwinss utiliza las bibliotecas GDI32 y USER32 de Wine con pocos cambios para aprovechar al máximo la compatibilidad del software existente de Wine. Arwinss también permite al usuario utilizar opcionalmente un servidor X remoto en lugar de una pantalla local. [135]
La iniciativa Tango Desktop Project proporciona pautas y recursos de diseño de código abierto (como íconos ) para aplicaciones en entornos de escritorio . FreeType es una biblioteca de desarrollo de software de código abierto , que se utiliza para representar texto en mapas de bits y brinda soporte para otras operaciones relacionadas con fuentes. [12] El proyecto KernelEx es un proyecto de capa de compatibilidad y extensión de API de Windows, que proporciona implementaciones de código abierto de algunas API de Windows. [136] Otros proyectos que contribuyen son MinGW , SYSLINUX , adns , ICU , GraphApp, Ext2 , GNU FreeFont , DejaVu fonts y Liberation fonts . [137] [138] [139]
Existen bifurcaciones basadas en ReactOS:
Varias personas han reconocido ReactOS y las implicaciones de tener un reemplazo viable de código abierto para Windows. [8] Un artículo y una entrevista de 2004 de la revista semanal alemana Der Spiegel describen que ReactOS está dirigido a usuarios de Windows que quieren renunciar al uso de software comercial propietario sin tener que cambiar a Linux. [8] DistroWatch , un sitio web de monitoreo de distribuciones de Linux , también enumera 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 ". [143]
En su columna para la revista Free Software , David Sugar señaló en 2006 que ReactOS permitiría el uso de aplicaciones dependientes de versiones anteriores de Windows cuyas API han quedado obsoletas. También reconoció su potencial para ampliar la base total implementada de software libre y como recurso para los desarrolladores que desean conocer las API de Windows no documentadas mientras escriben aplicaciones portátiles. [10] El columnista de PC Magazine, John C. Dvorak, comentó en 2008 que la arquitectura de Windows NT se había mantenido prácticamente sin cambios, lo que la convertía en un candidato ideal para la clonación, y creía que ReactOS podría ser "una amenaza mayor que Linux para el dominio de Microsoft". [9] En respuesta a la columna de Dvorak, la periodista de tecnología de ZDNet Dana Blankenhorn señaló en 2008 que la falta de patrocinadores y socios corporativos había hecho que el proyecto fuera inofensivo para Microsoft. [144] [145] Haciéndose eco de esto, Thom Holwerda de OSNews en 2009 clasificó a ReactOS dentro de una familia de sistemas operativos aficionados mantenidos solo por pequeños grupos de desarrolladores que trabajan en su tiempo libre, sin el apoyo financiero de sistemas operativos más convencionales y el legado de los que antes eran convencionales, como RISC OS . [146]
En octubre de 2015, una revisión de Network World de ReactOS v0.3.17 señaló "Es como ejecutar Windows 2000" y elogió el administrador de paquetes de aplicaciones , una característica que falta en el Windows original. [147]
Jesse Smith de DistroWatch Weekly revisó ReactOS v0.4.9 y señaló que ReactOS "finalmente tuvo un problema similar: soporte de hardware limitado" y aún no es un sistema operativo estable. [148]
El Proyecto ReactOS ganó el premio anual "La Mejor Presentación" del Foro Juvenil Seliger con 100.000 rublos rusos (2700 dólares) en 2011, al que asistió Alexander Rechitskiy, uno de los miembros del equipo de desarrollo. [149]
ReactOS fue un proyecto destacado en SourceForge durante las semanas que comenzaron el 27 de febrero de 2012, el 25 de abril de 2013, [150] y varios otros. Fue Proyecto del mes en SourceForge en junio de 2013 [151] y febrero de 2019. [152]
Dado que el software deja atrás específicamente a NT5, ReactOS está ampliando su objetivo para admitir software NT6+ (Vista, Windows 8, Windows 10).
Si bien el núcleo principal de ReactOS se construye desde cero, tiene algunas dependencias del software y protocolos existentes. Utiliza partes de Wine, redes en forma de lwIP, USB de Haiku, así como FreeType, Mesa3D y UniATA.
Los proyectos ReactOS y Haiku han tenido una relación de trabajo amistosa desde hace varios años, y cada grupo ayuda al otro siempre que es posible.
BV: Wine y ReactOS han tenido una relación de beneficio mutuo. ¿Hay algo que Wine podría hacer diferente que ayudaría al desarrollo de ReactOS?[...] BV: Ustedes ciertamente han contribuido con gran parte de su trabajo a Wine, incluidas algunas de las utilidades que han escrito. Por ejemplo, el administrador de tareas fue trasladado recientemente desde ReactOS. ¿Tienen algún plan en marcha para desarrollar más herramientas? Steven: Realmente quiero ver un clon de solitario en Wine y ReactOS.[...] En algún momento vamos a tener que desarrollar componentes de reemplazo para todo en Windows, así que si hay un programa que Wine necesita y ReactOS lo implementa, intentaré asegurarme de que se publique bajo una licencia compatible.
(…) ReactOS tiene como objetivo ejecutar programas ejecutables binarios reales de Windows. Esto significa que ReactOS debe implementar todo el entorno de Windows. Las funciones deben hacer exactamente lo que harían sus contrapartes de Windows. En otras palabras, al igual que nuestras recetas teóricas de guiso paralelo, ReactOS y Windows deberían ser funcionalmente idénticos. Sin embargo, para evitar demandas por derechos de autor, ReactOS debe ser expresamente completamente distinto y no derivado de Windows. ¡Este es un cuidadoso paseo por la cuerda floja! ReactOS es un reemplazo directo gratuito y reimplementado en salas limpias para Windows. Entonces, considere esto, especialmente en lo que respecta a llamadas a bibliotecas extremadamente simples:
¿es legal que ReactOS produzca código binario idéntico al de Windows?
Para protegerse contra los cargos de haber copiado simplemente (e ilegalmente) el BIOS de IBM, Phoenix le realizó ingeniería inversa utilizando lo que se llama un enfoque de "sala limpia" o "muro chino". Primero, un equipo de ingenieros estudió el BIOS de IBM (aproximadamente 8 KB de código) y describió todo lo que hacía de la forma más completa posible sin utilizar ni hacer referencia a ningún código real. Luego Phoenix trajo un segundo equipo de programadores que no tenían conocimiento previo del BIOS de IBM y nunca habían visto su código. Trabajando únicamente a partir de las especificaciones funcionales del primer equipo, el segundo equipo escribió un nuevo BIOS que funcionó según lo especificado.
[...] ingeniería inversa de cuartos sucios debe realizarse junto con el desarrollo de cuartos limpios mediante el uso de dos equipos aislados física y electrónicamente, donde un equipo realiza ingeniería inversa de cuartos sucios y el otro hace el desarrollo de cuartos limpios. Si existe un equipo de sala sucia, los ingenieros de sala limpia pueden escribir una descripción de la parte de la especificación que necesita elaboración o aclaración. Luego, los ingenieros de la sala sucia utilizan esa solicitud para crear especificaciones o pruebas funcionales adicionales.
Esta es una página que enumera los estudiantes y organizaciones que participaron en el programa Google Summer of Code 2006. [...] reacciona
A finales del año pasado, la fundación alemana se enteró de que los contratos que estaba otorgando a los desarrolladores podrían no cumplir con las regulaciones alemanas que involucran a organizaciones sin fines de lucro. Debido a esto, la fundación alemana tuvo que suspender temporalmente los pagos a los promotores y consultar con abogados fiscales para determinar cómo proceder de manera compatible.
Bueno, no quiero difundir demasiados rumores, pero puedo decir que tenemos algo en proceso. Si todo va bien, se anunciará dentro de una semana. Si bien no puedo entrar en demasiados detalles, puedo decir que se trata de Kickstarter y lo que creemos que es un producto comercial viable basado en [
sic
] ReactOS.
ReactOS recaudó más de 25.000 dólares en una campaña de financiación colectiva de Indiegogo a principios de 2014, para el desarrollo de una edición comunitaria del sistema operativo.
En resumen: es como ejecutar Windows 2000. Excepto que es gratuito y de código abierto. Lo que hace que se sienta increíble. Y sucio. Y profundo... también exasperante. Si soy honesto, realmente no sé cómo me hace sentir ReactOS. Pero es impresionante que exista y funcione tan bien. Más allá de ser simplemente de código abierto, ReactOS tiene una característica interesante que Windows nunca proporcionó correctamente: un administrador de aplicaciones diseñado y estructurado como un administrador de paquetes de Linux. Desde allí puedes incluso instalar una gran cantidad de software FOSS básico, como
Firefox
,
LibreOffice
y
GIMP
.
En el foro, ReactOS ganó el premio "La Mejor Presentación" y una subvención de 100.000 rublos (aproximadamente 2.400 JD). Además, una veintena de grandes inversores se interesaron por el proyecto.