< Back to index

ReactOS is a project to develop a free software/open-source operating system that is binary-compatible with Microsoft Windows NT/XP and Windows Server 2003 applications and device drivers. Although the project currently is in the alpha development stage, many Windows programs already work well. While the ReactOS kernel has been written from scratch, the userland is mostly based on the Wine compatibility layer for Unix operating systems.

ReactOS is primarily written in the C programming language, with some elements such as ReactOS Explorer written in C++.

Various components of ReactOS are licensed under the GNU General Public License, the GNU Lesser General Public License, and the BSD License.

On January 17, 2006, ReactOS was accused of copying code from Microsoft. An ongoing code audit is taking place.

History


Around 1996, a group of open source developers started a project called FreeWin95, with the aim of implementing an operating system that would be a clone of Windows 95. The project stalled in discussions of the design of the system.

At the end of 1997, the project had yet to release any software. The project members, led by coordinator Jason Filby, called to revive the project. The project's target was changed to Windows NT and the project's name was changed to ReactOS. The ReactOS project began in February 1998, with developing the kernel and basic drivers.

Controversy and Code Audit


On January 17 2006 Hartmut Birr alleged on the ReactOS Developers mailing list (ros-dev) that ReactOS contained code derived from disassembling Microsoft Windows. (http://www.reactos.org/archives/public/ros-dev/2006-January/007389.html) As a result of the allegations, the project's developers decided to temporarily suspend access to the operating system for non-developers. Since ReactOS is an open-source software development project, this action caused a negative reaction by the free software community. Contributors to its development were not affected by this action.

All access to the software development tools was restored shortly afterwards. Though the accusation is unproven, as of March 8 2006 ReactOS's developers began executing a self-imposed audit of all the code that makes it compatible with Microsoft Windows. To ensure that no part of the OS is written by anyone who may have seen leaked Microsoft code or done a less than clean room reverse engineering process, a total source code audit has been ordered by the leading ReactOS developers. This audit is ongoing, concurrently with the development on ReactOS.

The project has also decided to audit the code to look for possible code that wasn't a clean room reverse engineer and make all developers sign an agreement to only use clean room reverse engineering. (http://www.reactos.org/xhtml/en/news_page_14.html) This is expected to set the project back by rewriting of affected parts of the source code. This audit will be done by locking the "dirty" code until it is audited. (http://www.reactos.org/serendipity/index.php?/archives/26-ReactOS-audit-status.html)

This self-imposed audit is currently still being executed. Because a large part of the source code is already unlocked, development of ReactOS on these parts can continue. Therefore, the audit can be executed concurrently with the development or maintenance of ReactOS. Because of this, the continuing evolution of ReactOS should not be at risk.

As of January 12 2007 the audit is 96.5% complete.

Functionality


As of 2006, the ReactOS’ many APIs and ABIs are ready for a higher level of development and a basic GUI is available. ReactOS features ReactOS Explorer (ROSExplorer), which is a basic shell for ReactOS, similar to Windows Explorer.

Version 0.2.0 of ReactOS is able to run many Win32 applications, including Notepad (a basic text editor), Regedit (the registry editor), cmd.exe (the command-line interpreter), and several other applications (such as AbiWord) and basic games (such as Quake and Quake II, and the Wine clone of Minesweeper).

Since 0.2.6 Dillo, mIRC, and DCOM components of the Mozilla Firefox web browser (using the Gecko rendering engine) run in ReactOS.

Some games like Unreal Tournament and Deus Ex are confirmed to work, using software rendering. OpenGL runs with some minor problems, using the nVidia driver or the software implementation Mesa 3D. The first webserver (Tiny Web Server (http://www.ritlabs.com/tinyweb/)) and VNC client (UltraVNC) are reported to work, and OpenOffice.org version 1.x works partly.

As of Version 0.2.8, some elements of TCP/IP networking work, as well as a better number of applications. Sound and USB support is still being worked on (SB16 works partially, and USB OHCI and UHCI work is still being undertaken). The USB functionality is derived from the Cromwell project.

Plug-and-play work has also begun, as has the move to support the Windows Driver Model. In addition to the Lynx text-based browser, ReactOS can use DCOM components from Mozilla to browse web pages graphically.

ReactOS 0.2.8 can also detect whether it is running in a VMware environment, and can install the SVGA driver from the VMware Tools ISO, to provide a better level of GUI performance. CSRSS has also been totally rewritten, and a "written-from-scratch" implementation of Winsock 2 is scheduled to arrive very soon. Also present in the trunk are somewhat-working elements of ddraw, dplay, and dplayx.

ReactOS 0.3.0 Release Candidate 1 was released on June 15 2006. Improved network (TCP/IP) and Plug & Play support are the headline improvements of this version. Version 0.3.0 Release Candidate 2 was released when the audit reached 94%. It was deemed appropriate to release another candidate version at this time because so many bug fixes had been made during the audit.

On August 28 2006, ReactOS 0.3.0 left Release Candidate phase and was released to the public.

Related projects


ReactOS works with the Wine project so that the ReactOS project can benefit from Wine's progress in implementing the Win32 API. These efforts mainly concern Wine's DLLs, most of which can be shared between ReactOS and Wine. Both projects work on cross-compatibility issues, so that the remaining few DLLs can be used in ReactOS.

Another related project is Samba TNG, which implements dozens of services, such as LSASS, SAM, NETLOGON, SPOOLSS, that are key to the success and functionally correct interoperability of the ReactOS project. Samba's architectural design and strategic goals make it a difficult prospect to consider integrating into ReactOS, whereas Samba TNG's multi-layered and modular approach make it far easier to consider porting each service to ReactOS.

Future


The current stable version, 0.3.0, includes full TCP/IP networking support. The ReactOS Developers are also currently working on support for USB. For this, the Cromwell version of the Linux implementation is being ported.

ReactOS developers are also working on adding networking, multimedia, plug-and-play hardware support and improving the GUI system. Java and .NET support (through Mono) has also been stubbed. After a multi-user environment is developed, Terminal Service and Remote desktop will be developed; for this XRDP, Virtual Network Computing (VNC), and rdesktop will be used. Provisions for DOS, OS/2, and POSIX subsystems have also been made, in a similar fashion to the Windows NT subsystems.

In October 2004, the goal for version 1.0 was articulated as a stable implementation of a subset of Windows Workstation ("ReactOS Workstation"), including TCP/IP networking, client-side and server-side support of CIFS, OpenGL, DirectX and support for Windows device drivers via WDM.

Current branches


The ReactOS Developers are currently working on a number of ports of ReactOS:

* Xen (status unknown)
* Xbox (working)
* PowerPC (initial booting)
* x64 (working in 32-bit compatibility mode)
* MIPS (status unknown)

Also a number of rewrites are in progress (not related to audit):

* Cache Manager (expected for 0.3.2)
* Configuration Manager
* Win32k

Other branch projects include:

* Lean Explorer
* Usermode ReactOS
* Improved networking
* Clipboard implementation

Challenges and opportunities



One of the challenges for the project has been lack of developers. The coordinators hope that the rate of development will increase as more people are drawn to volunteer their time. They note that ReactOS provides a unique and fulfilling opportunity to be involved in the early stages of OS development, as Linux did in the 1990s.

Hardware requirements



* IA-32-capable processor (i486 or more recent implementations)
* 32 MB RAM
* IDE hard disk
* FAT16/FAT32 boot partition
* VGA-compatible video card
* Standard keyboard
* PS/2 compatible mouse or Microsoft Mouse-compatible serial mouse

As noted, ReactOS can also be run on software which emulates the above hardware, such as Virtual PC, VMware, QEMU, or Bochs.

As Windows NT 4.0 ran on MIPS, Alpha AXP, and PowerPC architectures in addition to the i386 architecture, and NT-derived operating systems such as Windows XP and Windows Server 2003 have been ported to several architectures (i.e. AMD64, IA-32, and IA-64), ReactOS developers have also taken initial steps in view of portability. For example, support for a variant IA-32 architecture, the Xbox platform, was added to the 0.2.5 release, and efforts toward a ReactOS port on the PowerPC and the Xen architecture are also underway as of 2005.
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.