Katana VentraIP

ReactOS

ReactOS is a free and open-source operating system for i586/amd64 personal computers intended to be binary-compatible with computer programs and device drivers developed for Windows Server 2003 and later versions of Microsoft Windows.[5][6] ReactOS has been noted as a potential open-source drop-in replacement for Windows[7][8][9] and for its information on undocumented Windows APIs.[10]

Not to be confused with React (JavaScript library).

Developer

Community contributors
The ReactOS developers

Windows NT-like

(partial) 1998 (1998)

0.4.14[3] / 16 December 2021 (2021-12-16)[3]

Hybrid (designed to be compatible with Windows NT family)

Graphical (ReactOS Explorer)

ReactOS has been in development since 1996. As of April 2024, it is still considered feature-incomplete alpha software, and is therefore recommended by the developers only for evaluation and testing purposes.[11][12] However, many Windows applications are working, such as Adobe Reader 9.3, GIMP 2.6, and LibreOffice 5.4.[13][14]


ReactOS is primarily written in C, with some elements, such as ReactOS File Explorer, written in C++. The project partially implements Windows API functionality and has been ported to the AMD64 processor architecture.[15] ReactOS, as part of the FOSS ecosystem, re-uses and collaborates with many other FOSS projects,[16][17] most notably the Wine project, which presents a Windows compatibility layer for Unix-like operating systems.

History[edit]

Early development[edit]

Around 1996, a group of free and open-source software developers started a project called FreeWin95 to implement a clone of Windows 95. The project stalled in discussions on the design of the system.


While FreeWin95 had started out with high expectations, there still had not been any builds released to the public by the end of 1997. As a result, the project members, led by then coordinator Jason Filby, joined together to revive the project. The revived project sought to duplicate the functionality of Windows NT.[18] In creating the new project, a new name, ReactOS, was chosen. The project began development in February 1998 by creating the basis for a new NT kernel and basic drivers.[19][20] The name ReactOS was coined during an IRC chat. While the term "OS" stood for operating system, the term "react" referred to the group's dissatisfaction with – and reaction to – Microsoft's monopolistic position.[8]


In 2002, the ReactOS Foundation was established in Moscow with Maxim Osowski and Aleksey Bragin as executive officers and Vladimir Bragin, Saveliy Tretiakov and Alexey Ivanov on the board of directors.[21] In 2015, the foundation was liquidated.[22]

Internal audit[edit]

In order to avoid copyright prosecution, ReactOS had to be expressly completely distinct and non-derivative from Windows, a goal that needed very careful work.[23] A claim was made on 17 January 2006 by developer Hartmut Birr on the ReactOS developers mailing list (ros-dev) that ReactOS contained code derived from disassembling Microsoft Windows.[24] The code that Birr disputed involved the function BadStack in syscall.S,[25] as well as other unspecified items.[26] Comparing this function to disassembled binaries from Windows XP, Birr argued that the BadStack function was simply copy-pasted from Windows XP, given that they were identical. Alex Ionescu, the author of the code, asserted that while the Windows XP binary in question was indeed disassembled and studied, the code was not merely copy-pasted, but reimplemented; the reason why the functions were identical, Ionescu claimed, was because there was only one possible way to implement the function.[27]


On 27 January 2006, the developers responsible for maintaining the ReactOS code repository disabled access after a meeting was held to discuss the allegations. When approached by NewsForge, Microsoft declined to comment on the incident. Since ReactOS is a free and open-source software development project, the claim triggered a negative reaction from the free software community; in particular, Wine barred several inactive developers from providing contributions and formal high level cooperation between the two projects remained difficult as of 2006.[28]


In a statement on its website, ReactOS cited differing legal definitions of what constitutes clean-room reverse engineering as a cause for the conflict.[29] To avoid potential litigation, companies sometimes enact a policy where reimplementation based on disassembled code must be written by someone other than the person having disassembled and examined the original code.[30][31] ReactOS clarified its Intellectual Property Policy Statement requirements on clean room reverse engineering to avoid potential infringement of United States law. An internal source code audit was conducted to ensure that only clean room reverse engineering was used, and all developers were made to sign an agreement committing them to comply with the project's policies on reverse engineering.[28] Contributors to its development were not affected by these events and all access to the software development tools was restored shortly afterward. In September 2007, with the audit nearing completion, the audit status was removed from the ReactOS homepage. Though the audit was completed, specific details were not made public, as it was only an internal effort to ensure compliance with the project's own policies.[32]


Also, the 2004 leaked Windows source code[33] was not seen as legal risk for ReactOS, as the trade secret was considered indefensible in court due to broad spread.[34]


Axel Rietschin, who is a kernel engineer at Microsoft, claimed that he recognized some specific bits in the ReactOS kernel that are unlikely to result from a clean room reimplementation. He suggests that the project took source code from the Windows Research Kernel, which was licensed to universities and has been leaked multiple times. Internal data structures and variable names have the exact same name in both ReactOS and the research kernel.[35]

Google Summer of Code participation[edit]

Starting in 2006,[36] the ReactOS project participated in several Google Summers of Code. For example, in the GSoC 2011,[37] ReactOS mentored a student project which integrated lwIP into the network stack.[38]

Lobbying for support in Russia[edit]

Between 2007 and 2015, Russian ReactOS contributors representing the ReactOS Foundation made efforts at lobbying the Russian federal government. As of April 2019, these efforts have not yielded government support for ReactOS, and the Russia-based ReactOS Foundation has been dissolved since November 2015.[22]

ReactOS Explorer ()

File Explorer

ReactOS Applications Manager

Calculator

Device Manager

Solitaire

Development[edit]

ReactOS core development[edit]

ReactOS is primarily written in C, with some elements, such as ReactOS Explorer and the sound stack, written in C++. The project compiles using both MinGW and Microsoft Visual Studio, and contributes to the development of the build systems used through the submission of patches to its components.[118]


The developers aim to make the kernel and usermode application programming interface (API) more compatible with Windows NT version 5.2 (Windows Server 2003) and to add support for more applications and hardware, with plans to target newer versions of Windows as development matures.[119] DirectX support is undertaken through ReactX, an in-house implementation. 2D and OpenGL 3D hardware-accelerated rendering is done natively, while other drawing functionality such as Direct3D is redirected to OpenGL as a stopgap solution, mostly using Wine's code such as WineD3D.[15][120]


The development progress is influenced by the size of the development team and the level of experience among them. As an estimate of the effort required to implement Windows 7, Microsoft employed 1,000 or so developers, organized into 25 teams, with each team averaging 40 developers.[121] As of 2 September 2011, in the ReactOS entry in Ohloh, the page followed through the "Very large, active development team" link lists 33 developers who have contributed over a 12-month period and a cumulative total of 104 present and former users who have contributed code to the project via Apache Subversion since its inception.[122] In his presentation at Hackmeeting 2009 in Milan, ReactOS developer Michele C. noted that most of the developers learn about Windows architecture while working on ReactOS and have no prior knowledge.[123]


While ReactOS targets mainly the x86/AMD64 PC platform,[124] an effort to port to the ARM architecture was at one point "under way",[15] while it did not produce much functionality and was abandoned[125] along with a port to PowerPC, that is no longer actively maintained.[11] Support for the Xbox and the NEC PC-9800, a variant IA-32 architecture, was added through the use of an architecture-specific HAL.[123][109][3] Improved 64-bit support for ReactOS is "being worked on", however, development seems to be going slowly.[126]

Collaboration and reuse[edit]

While ReactOS has the aim to build a Windows-compatible kernel as open-source software, much of the surrounding required functionality to create a complete OS is already available in the greater open-source ecosystem. When available and possible, ReactOS therefore builds on and collaborates with already existing open-source projects.[16] Conversely, projects like Wine,[17] and formerly Captive NTFS[127] and Longene re-use the open-source ReactOS code-base as well.[128]

Ekush OS (2004)[141][142]

[140]

Forks based on ReactOS exist:

Binary-code compatibility

a project allowing Microsoft Windows and the Linux kernel to run simultaneously in parallel on the same machine

coLinux

a clone of MS-DOS

FreeDOS

and ArcaOS, two independent proprietary continuations of OS/2 (source code licensed from IBM), which IBM co-created with Microsoft and shares some design elements with MS-DOS and Windows

eComStation

a clone of BeOS

Haiku

a hybrid operating system kernel intended to be binary-compatible with both the Microsoft Windows and Linux ecosystems

Longene

a re-creation of Windows NT kernel parts inside the Linux Kernel to allow the use of Windows drivers in Linux

NDISwrapper

a compatibility layer that runs Microsoft Windows applications on Unix-like operating systems

Wine

List of alternative shells for Windows

Comparison of operating systems

Edit this at Wikidata

Official website

on GitHub

reactos

at DistroWatch

ReactOS