ReactOS

From Free net encyclopedia

Revision as of 12:23, 21 April 2006; view current revision
←Older revision | Newer revision→

Template:Infobox OS Image:Reactos 1.png Image:Ros openoffice.png Image:2005 532 Explorer-Browser-0001.png ReactOS is a project to develop a free software / open source operating system that is object code-compatible with Microsoft Windows NT and Windows 2000 applications and drivers. Although the project currently is in the 'Alpha' development stage, many Windows programs already seem to work.

ReactOS is primarily written in C with some elements, like ReactOS Explorer, written in [[C++]].

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

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.

Contents

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 still had no results. The project members 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

On January 17, 2006 Hartmut Birr wrote a message on the ReactOS Developers mailing list (ros-dev) with the accusation that ReactOS contains code derived from disassembling Microsoft Windows. [1] As a result of the allegations, the project's developers decided to temporarily suspend access to non-developers of the operating system. Since ReactOS is an OpenSource software development project, this action caused a negative reaction by the OpenSource community. Contributors to its development were not affected by this action.

All access to the software development tools were restored shortly afterwards. Though the accusation by Hartmut Birr is unproven, the ReactOS developer community decided to self-impose an audit of the source-code that makes it compatible with Microsoft Windows software.

ReactOS's developers are executing a self-imposed audit of all the code. ReactOS developers maintain that the auditing process will not impede future development or maintenance of the software. The audit can be executed while concurrently still continuing evolution of 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. [2] 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.[3]

Functionality

As of 2005, the ReactOS kernel is quite stable, 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 (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 a 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. Also OpenGL runs with some minor problems, using the nVidia driver or the software implementation Mesa 3D.

And the first webserver (Tiny Web server) and The UltraVNC Client are reported to work. As shown in the screenshot on the right, even 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, such as Notepad, AbiWord, OpenOffice, Deus Ex, and Unreal Tournament. 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 'borrowed' from Cromwell.

Plug and Play work has also begun, as has the move to support WDM. 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 Ws2_32 is scheduled to arrive very soon. Also present in the Trunk are somewhat-working elements of ddraw, dplay and dplayx.

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. This process is meant to address accusations of reverse-engineering by its programmers and to ensure and verify that the ReactOS source code doesn't violate United States copyright laws.

As of April 19th, 2006, the audit is 71% complete and on a steady path to completion.

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 ReactOS roadmap indicates release (0.3.0) will include full TCP/IP networking support. ReactOS Developers are also currently working on support for USB. For this the Cromwell version of the Linux implementation is ported. Also being worked on is the www.reactos.org homepage.

ReactOS developers are working on improving the GUI system, adding networking, multimedia, and plug-and-play hardware support. Java and .NET support (through Mono) has also been stubbed. After multi user environment is developed Terminal Service and Remote desktop will be developed, for this XRDP, 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 branches for ReactOS:

These changes are not present in the main ReactOS Trunk.

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.

Criticisms

Some critics of the ReactOS project have set forth reasons why they believe ReactOS to not be a worthwhile project. Among these, some have stated that several well-developed open source operating systems already exist (currently all based on or modeled after Unix: Linux and the various variants of BSD). They feel that rather than building a new operating system, it would be better to concentrate on improving these and work on Wine so that they can better run existing Windows applications. However, ReactOS developers argue that an OS which is more like Windows at a lower level (that is, designed to be similar to Windows rather than running an application that tries to turn an OS into Windows) is more likely to achieve broader compatibility with the existing base of Windows applications.

Aside from the functionality of Windows applications, ReactOS developers and other advocates argue that a Unix-style OS is not the only or necessarily the best type of OS and that the design of NT contains many ideas which are an improvement on the Unix way of doing things. They also strongly feel that choice is an essential principle of the Open Source and Free Software movements, and assert that someone who wants to use an open-source modern graphical operating system should not be forced to use one that's Unix-like. They argue that the movements will ultimately have the greatest success when everyone has the freedom to choose a free-software OS which functions in a way that best suits their preferences, and/or is similar to the OS they're accustomed to.

Additionally, there is the issue of virtualisation technologies now becoming prevalent, such as VMware which is a proprietary project and more recently, Xen which is Free Software. Xen is a light-weight virtualisation technology: it does not fully emulate virtual x86 hardware (unlike VMware, which does). Consequently, cooperation between Xen and the guest operating systems it hosts are required. The tantalising possibility exists of developing such cooperation inside ReactOS whereas the prospect of the Free Software community writing such drivers as are required for the Windows NT operating system are much more daunting.

Hardware Requirements

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 additionally 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, IA32 and IA64), ReactOS developers have also taken initial steps in view of portability. For example, support for a variant IA32 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.

See Also

Template:Portalpar

External Links

bg:ReactOS ca:ReactOS cs:ReactOS de:ReactOS et:ReactOS es:ReactOS fr:ReactOS it:ReactOS he:ReactOS hu:ReactOS nl:ReactOS no:ReactOS ja:ReactOS pl:ReactOS pt:ReactOS ru:ReactOS sk:ReactOS fi:ReactOS sv:ReactOS uk:ReactOS zh:ReactOS