ReactOS
Encyclopedia
ReactOS is an open source
computer operating system
intended to be binary compatible
with application software
and device driver
s made for Microsoft Windows NT versions 5.x and up (Windows 2000
and its successors). A spin-off of a previous attempt to clone Windows 95, development started in early 1998, and has continued with the incremental addition of features already found in Windows.
ReactOS is primarily written in C
, with some elements, such as ReactOS Explorer, written in C++
. The project has been ported to the ARM
and AMD64 processor architectures, and partially implements Windows API functionality. The latter is assisted by including parts from the Wine
compatibility layer for Unix-like
operating systems, but other functionality is implemented by the developers themselves. However, progress has been hampered by a lack of developers with the relevant skill-sets.
An extensive code audit is in place to protect against legal problems, such that implementation of the Windows API is only done by means of a complete clean room
reverse engineering
process. This has been in place following claims made in 2006 by a former developer that the project contains disassembled
assembly code
from Windows, an allegation that has had no adverse legal consequences to the project.
ReactOS has been noted for its information on undocumented Windows APIs and more generally as an open-source drop-in replacement for Windows. The project aim, as cited from itself, is to allow users of Windows to completely renounce use of proprietary commercial software without having to switch to an operating system that is not binary-compatible with Windows, such as Linux
. However, a lack of corporate backers and dedicated developers have limited its efforts to realize this.
developer from Durban, South Africa. 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
.
developers started a project called FreeWin95 to implement a clone of Windows 95
. The project stalled in discussions of the design of the system.
While FreeWin95 had started out with high expectations, there still hadn't been any builds released to the public by the end of 1997. As a result, the project members, led by coordinator Jason Filby, joined together to revive the project. The revived project sought to duplicate the functionality of Windows NT. 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.
(ros-dev) that ReactOS contained code derived from disassembling
Microsoft Windows. The code that Birr disputed involved the function BadStack in syscall.S as well as other unspecified items. 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.
On January 27, 2006, the developers responsible for maintaining the ReactOS code repository disabled access after a meeting was held to discuss the allegations. However, when approached by NewsForge, Microsoft declined to comment about the incident. Since ReactOS is a free and open source software
development project, the claim triggered a negative reaction by the free software community
; in particular, Wine barred several now inactive developers from providing contributions and formal high level cooperation between the two projects still remains difficult. Contributions from several active ReactOS developers however have been accepted post-audit and low level cooperation for bug fixes still occur.
In a statement on its website, ReactOS cited differing legal definitions of what constitutes clean-room reverse engineering as a cause for the conflict, as some countries, including the United States, require that reimplementation of disassembled code be written by someone other than the person having disassembled and examined the original code, whereas other countries allow both tasks to be performed by the same individual. Consequently, ReactOS clarified that its Intellectual Property Policy Statement requirements on clean room reverse engineering conform to US 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. 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. Much of the assembly code that was allegedly copied have also been replaced as a natural progression in ReactOS development, with developers having reimplemented the functionality in C for portability reasons.
, with some elements, such as ReactOS Explorer and sound stack, written in C++
. The project relies on MinGW
for compilation, and contributes to its development through the submission of patches to its components.
The developers aim to make the kernel more compatible with Windows NT version 5.2 (Windows Server 2003
), the usermode APIs with Windows NT 6 (Windows Vista
), and to add support for more applications and hardware. DirectX
support is undertaken through ReactX, an in-house implementation. 2D hardware-accelerated rendering is done natively, while other drawing functionality is redirected to OpenGL as a stopgap solution.
Development progress is influenced by the size of the development team and the level of experience amongst them. As an estimate of the effort required to implement the Windows API, there are 1000 or so developers who worked on Windows 7 alone, organized into 25 teams, with each team averaging 40 developers. , 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 Subversion since its inception. 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.
project so that it can benefit from Wine's progress in implementing the Win32 API. Wine's NTDLL, USER32, KERNEL32, GDI32 and ADVAPI components cannot be used by ReactOS due to architectural differences, but the other parts of the code can be shared between both projects. Components that are not available from Wine, such as the kernel, are developed separately.
Separately, the experimental Arwinss branch was created as an alternative means to improve USER32 and GDI32 support through an alternative implementation of the Win32 API. Whereas ReactOS's original Win32 subsystem was closely modeled after its equivalent in Windows, Arwinss combines the architecture of that subsystem with the corresponding implementation in Wine. To this end, Arwinss uses Wine's GDI32 and USER32 libraries with few changes to take fuller advantage of Wine's existing software compatibility. Arwinss also allows the user to optionally use a remote X server
instead of a local display.
held in 2011, ReactOS mentored a student project which integrated lwIP
into the network stack. This replaced a previous implementation built from an import of the TCP
portion of OSKit's port of the network stack in FreeBSD
, along with an internally developed implementation for packet-oriented protocols like IP
.
is used for the rendering of fonts in the GUI, while Mesa 3D provides OpenGL
rendering. Serial ATA
drivers are provided by UniATA. The project has also experimented with using the FullFAT library in its rewrite of its FAT
Installable File System
.
, a variant IA-32 architecture, was added through the use of an architecture-specific HAL, although this, along with a port to PowerPC, are no longer actively maintained.
The future 0.4 release series will also be in alpha stage; the 0.5 release series will be marked as beta, suitable for everyday use but not subjected to thorough quality control
.
In his column for Free Software Magazine
, David Sugar noted that ReactOS would allow the use of applications depending on older versions of Windows whose APIs have been deprecated. He also recognized its potential to expand the total deployed base of free software, and as a resource for developers wanting to know undocumented Windows APIs in the course of writing portable applications. PC Magazine
columnist John C. Dvorak
remarked that the Windows NT architecture has remained largely the same to this day, making it an ideal candidate for cloning, and believes that ReactOS could be "a bigger threat than Linux to Microsoft's dominance". Indeed, Aleksey Bragin has mentioned in a comment to German weekly magazine Der Spiegel
that ReactOS is directed at Windows users who want to renounce use of proprietary commercial software without having to switch to Linux.
However, ReactOS has been observed to have challenges. In response to Dvorak's column, ZDNet
technology journalist Dana Blankenhorn has noted that a lack of corporate sponsors and partners has currently rendered the project harmless to Microsoft. Echoing this, Thom Holwerda of OSNews categorized ReactOS under a family of hobby operating systems that are maintained only by small groups of developers working in their spare time, and lack the financial support of more mainstream operating systems as well as the legacy of formerly mainstream ones such as RISC OS
.
Demonstrations of the operating system have been given, mainly to Russian political figures. Viktor Alksnis
has met with current project coordinator Aleksey Bragin, who gave a presentation and demonstration of the project, showing ReactOS running with Total Commander
and Mozilla Firefox
. Dimitry Medvedev was also given a demonstration during a visit as President of Russia to a high school in Verhnerusskoe, Stavropol
, attended by one of the development team members.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
computer operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
intended to be binary compatible
Application binary interface
In computer software, an application binary interface describes the low-level interface between an application program and the operating system or another application.- Description :...
with application software
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
and device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
s made for Microsoft Windows NT versions 5.x and up (Windows 2000
Windows 2000
Windows 2000 is a line of operating systems produced by Microsoft for use on personal computers, business desktops, laptops, and servers. Windows 2000 was released to manufacturing on 15 December 1999 and launched to retail on 17 February 2000. It is the successor to Windows NT 4.0, and is the...
and its successors). A spin-off of a previous attempt to clone Windows 95, development started in early 1998, and has continued with the incremental addition of features already found in Windows.
ReactOS is primarily written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, with some elements, such as ReactOS Explorer, written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
. The project has been ported to the ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
and AMD64 processor architectures, and partially implements Windows API functionality. The latter is assisted by including parts from the Wine
Wine (software)
Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...
compatibility layer for Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
operating systems, but other functionality is implemented by the developers themselves. However, progress has been hampered by a lack of developers with the relevant skill-sets.
An extensive code audit is in place to protect against legal problems, such that implementation of the Windows API is only done by means of a complete clean room
Clean room design
Clean room design is the method of copying a design by reverse engineering and then recreating it without infringing any of the copyrights and trade secrets associated with the original design. Clean room design is useful as a defense against copyright and trade secret infringement because it...
reverse engineering
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...
process. This has been in place following claims made in 2006 by a former developer that the project contains disassembled
Disassembler
A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language...
assembly code
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
from Windows, an allegation that has had no adverse legal consequences to the project.
ReactOS has been noted for its information on undocumented Windows APIs and more generally as an open-source drop-in replacement for Windows. The project aim, as cited from itself, is to allow users of Windows to completely renounce use of proprietary commercial software without having to switch to an operating system that is not binary-compatible with Windows, such as Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
. However, a lack of corporate backers and dedicated developers have limited its efforts to realize this.
Etymology
The name ReactOS was coined by project founder Jason Filby, an OracleOracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
developer from Durban, South Africa. 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
Microsoft litigation
Microsoft has been involved in numerous high-profile litigations over the history of the company, including cases against the United States, the European Union, and competitors.-Governmental:In its 2008 annual report, Microsoft stated:-Anti-trust:...
.
Early development: FreeWin95 to ReactOS
Around 1996, a group of free and open source softwareFree and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...
developers started a project called FreeWin95 to implement a clone of Windows 95
Windows 95
Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Windows products...
. The project stalled in discussions of the design of the system.
While FreeWin95 had started out with high expectations, there still hadn't been any builds released to the public by the end of 1997. As a result, the project members, led by coordinator Jason Filby, joined together to revive the project. The revived project sought to duplicate the functionality of Windows NT. 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.
Internal audit
A claim was made on January 17, 2006 by now former developer Hartmut Birr on the ReactOS Developers mailing listMailing list
A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. The term is often extended to include the people subscribed to such a list, so the group of subscribers is referred to as "the mailing list", or simply "the...
(ros-dev) that ReactOS contained code derived from disassembling
Disassembler
A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language...
Microsoft Windows. The code that Birr disputed involved the function BadStack in syscall.S as well as other unspecified items. 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.
On January 27, 2006, the developers responsible for maintaining the ReactOS code repository disabled access after a meeting was held to discuss the allegations. However, when approached by NewsForge, Microsoft declined to comment about the incident. Since ReactOS is a free and open source software
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...
development project, the claim triggered a negative reaction by the free software community
Free software community
The free-software community is an informal term that refers to the users and developers of free software as well as supporters of the free-software movement. The movement is sometimes referred to as the open-source software community or a subset thereof...
; in particular, Wine barred several now inactive developers from providing contributions and formal high level cooperation between the two projects still remains difficult. Contributions from several active ReactOS developers however have been accepted post-audit and low level cooperation for bug fixes still occur.
In a statement on its website, ReactOS cited differing legal definitions of what constitutes clean-room reverse engineering as a cause for the conflict, as some countries, including the United States, require that reimplementation of disassembled code be written by someone other than the person having disassembled and examined the original code, whereas other countries allow both tasks to be performed by the same individual. Consequently, ReactOS clarified that its Intellectual Property Policy Statement requirements on clean room reverse engineering conform to US law. An internal source code audit
Audit
The general definition of an audit is an evaluation of a person, organization, system, process, enterprise, project or product. The term most commonly refers to audits in accounting, but similar concepts also exist in project management, quality management, and energy conservation.- Accounting...
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. 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. Much of the assembly code that was allegedly copied have also been replaced as a natural progression in ReactOS development, with developers having reimplemented the functionality in C for portability reasons.
Version history
Color | Meaning |
---|---|
Red | Release no longer supported |
Green | Current release |
Blue | Future release |
System Version | Release Date | Release Information |
---|---|---|
0.2.0 | 2004-01-25 | first release with working GUI Graphical user interface In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and... |
0.2.1 | 2004-03-03 | bug fixes only |
0.2.2 | 2004-04-27 | |
0.2.3 | 2004-06-26 | |
0.2.4 | 2004-09-13 | |
0.2.5 | 2005-01-02 | |
0.2.6 | 2005-04-09 | |
0.2.7 | 2005-08-21 | |
0.2.8 | 2005-10-29 | VMWare detection, CSRSS rewrite |
0.2.9 | 2005-12-22 | bug fixes only |
0.3.0 | 2006-08-27 | first version to officially support networking |
0.3.1 | 2007-03-10 | program manager included, start of kernel rewrite |
0.3.2 | skipped | branch created but never released |
0.3.3 | 2007-09-12 | kernel and win32k improvements |
0.3.4 | 2008-01-22 | registry support rewrite, remote desktop client and Plug 'N' Play |
0.3.5 | 2008-06-30 | bug fixes only |
0.3.6 | 2008-08-06 | RTL support |
0.3.7 | 2008-11-04 | improved x86-64 X86-64 x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other... ; MSVC, new stacks |
0.3.8 | 2009-02-04 | introduced PSEH and multipartition HDD support in LiveCD |
0.3.9 | 2009-04-26 | 24MB minimum RAM, faster hyperspace mapping, initial sound support |
0.3.10 | 2009-07-05 | initial SATA support, USB keyboard/mouse support, Paint clone, initial MSVC Visual C++ Microsoft Visual C++ is a commercial , integrated development environment product from Microsoft for the C, C++, and C++/CLI programming languages... . |
0.3.11 | 2009-12-16 | kdcom rewrite; Chinese/Korean fonts; compatibility updates; sound system improvements |
0.3.12 | 2010-10-20 | trap handler rewrite; timer and message handling rewrite; NMI Non-Maskable interrupt A non-maskable interrupt is a computer processor interrupt that cannot be ignored by standard interrupt masking techniques in the system. It is typically used to signal attention for non-recoverable hardware errors... support; SxS Side-by-side assembly Side-by-side technology is a standard for executable files in Microsoft Windows XP and later versions that attempts to reduce DLL hell. Side-by-side technology is also known as WinSxS or SxS. Executables that include an SxS manifest are designated SxS assemblies.DLL hell designates a group of... support; partial EMS Emergency Management Services Emergency Management Services provides an RS-232 accessible serial console interface to the bootloader menu on modern versions of Microsoft Windows.... support |
0.3.13 | 2011-03-22 | heap manager rewrite, improved SATA support, fixed graphics issues |
Development
ReactOS is primarily written in CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, with some elements, such as ReactOS Explorer and sound stack, written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
. The project relies on MinGW
MinGW
MinGW , formerly mingw32, is a native software port of the GNU Compiler Collection and GNU Binutils for use in the development of native Microsoft Windows applications; MinGW can function either as a cross compiler targeting Windows or as a native toolchain run on Windows itself...
for compilation, and contributes to its development through the submission of patches to its components.
The developers aim to make the kernel more compatible with Windows NT version 5.2 (Windows Server 2003
Windows Server 2003
Windows Server 2003 is a server operating system produced by Microsoft, introduced on 24 April 2003. An updated version, Windows Server 2003 R2, was released to manufacturing on 6 December 2005...
), the usermode APIs with Windows NT 6 (Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...
), and to add support for more applications and hardware. DirectX
DirectX
Microsoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...
support is undertaken through ReactX, an in-house implementation. 2D hardware-accelerated rendering is done natively, while other drawing functionality is redirected to OpenGL as a stopgap solution.
Development progress is influenced by the size of the development team and the level of experience amongst them. As an estimate of the effort required to implement the Windows API, there are 1000 or so developers who worked on Windows 7 alone, organized into 25 teams, with each team averaging 40 developers. , in the ReactOS entry in Ohloh
Ohloh
Ohloh is a website which provides a web services suite and online community platform that aims to map the landscape of open source software development. It was founded by former Microsoft managers Jason Allen and Scott Collison in 2004 and joined by the developer Robin Luckey...
, 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 Subversion since its inception. 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.
Dependencies
ReactOS makes use of code from other projects where possible, so that developers can avoid duplicating readily available functionality and focus on binary compatibility with Windows.Wine
ReactOS uses portions of the WineWine (software)
Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...
project so that it can benefit from Wine's progress in implementing the Win32 API. Wine's NTDLL, USER32, KERNEL32, GDI32 and ADVAPI components cannot be used by ReactOS due to architectural differences, but the other parts of the code can be shared between both projects. Components that are not available from Wine, such as the kernel, are developed separately.
Separately, the experimental Arwinss branch was created as an alternative means to improve USER32 and GDI32 support through an alternative implementation of the Win32 API. Whereas ReactOS's original Win32 subsystem was closely modeled after its equivalent in Windows, Arwinss combines the architecture of that subsystem with the corresponding implementation in Wine. To this end, Arwinss uses Wine's GDI32 and USER32 libraries with few changes to take fuller advantage of Wine's existing software compatibility. Arwinss also allows the user to optionally use a remote X server
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
instead of a local display.
Networking
As part of its participation in the Google Summer of CodeGoogle Summer of Code
The Google Summer of Code is an annual program, first held from May to August 2005, in which Google awards stipends to hundreds of students who successfully complete a requested free or open-source software coding project during the summer...
held in 2011, ReactOS mentored a student project which integrated lwIP
LwIP
lwIP is a widely used open source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a world wide network of developers led by Kieran Mansley.lwIP is used by many...
into the network stack. This replaced a previous implementation built from an import of the TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
portion of OSKit's port of the network stack in FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
, along with an internally developed implementation for packet-oriented protocols like IP
Internet Protocol
The Internet Protocol is the principal communications protocol used for relaying datagrams across an internetwork using the Internet Protocol Suite...
.
Other
FreeTypeFreeType
FreeType is a software library written in C that implements a font rasterization engine. It is used to render text on to bitmaps and provides support for other font-related operations.-Details:...
is used for the rendering of fonts in the GUI, while Mesa 3D provides OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
rendering. Serial ATA
Serial ATA
Serial ATA is a computer bus interface for connecting host bus adapters to mass storage devices such as hard disk drives and optical drives...
drivers are provided by UniATA. The project has also experimented with using the FullFAT library in its rewrite of its FAT
File Allocation Table
File Allocation Table is a computer file system architecture now widely used on many computer systems and most memory cards, such as those used with digital cameras. FAT file systems are commonly found on floppy disks, flash memory cards, digital cameras, and many other portable devices because of...
Installable File System
Installable File System
The Installable File System is a filesystem API in IBM OS/2 and Microsoft Windows that enables the operating system to recognize and load drivers for file systems...
.
Architecture support
ReactOS has been partially ported to the AMD64 and ARM architectures. Support for the XboxXbox
The Xbox is a sixth-generation video game console manufactured by Microsoft. It was released on November 15, 2001 in North America, February 22, 2002 in Japan, and March 14, 2002 in Australia and Europe and is the predecessor to the Xbox 360. It was Microsoft's first foray into the gaming console...
, a variant IA-32 architecture, was added through the use of an architecture-specific HAL, although this, along with a port to PowerPC, are no longer actively maintained.
Usability
At Chemnitz 2010, the ReactOS development team considered ReactOS 0.3.12 as alpha-stage software, not feature-complete and not suitable for everyday use. The kernel is incomplete, and only a few Windows applications run without problems. However, the operating system is considered quite stable, and has a very short installation and boot time.The future 0.4 release series will also be in alpha stage; the 0.5 release series will be marked as beta, suitable for everyday use but not subjected to thorough quality control
Quality control
Quality control, or QC for short, is a process by which entities review the quality of all factors involved in production. This approach places an emphasis on three aspects:...
.
Reception
Various people have acknowledged ReactOS and the implications of having a viable open-source drop-in replacement for Windows.In his column for Free Software Magazine
Free Software Magazine
Free Software Magazine is a website which produces a mostly free-content e-zine about free software....
, David Sugar noted that ReactOS would allow the use of applications depending on older versions of Windows whose APIs have been deprecated. He also recognized its potential to expand the total deployed base of free software, and as a resource for developers wanting to know undocumented Windows APIs in the course of writing portable applications. PC Magazine
PC Magazine
PC Magazine is a computer magazine published by Ziff Davis Publishing Holdings Inc. A print edition was published from 1982 to January 2009...
columnist John C. Dvorak
John C. Dvorak
John C. Dvorak is an American columnist and broadcaster in the areas of technology and computing. His writing extends back to the 1980s, when he was a mainstay of a variety of magazines. Dvorak is also the Vice-President of Mevio and well known for his work for Tech TV...
remarked that the Windows NT architecture has remained largely the same to this day, making it an ideal candidate for cloning, and believes that ReactOS could be "a bigger threat than Linux to Microsoft's dominance". Indeed, Aleksey Bragin has mentioned in a comment to German weekly magazine Der Spiegel
Der Spiegel
Der Spiegel is a German weekly news magazine published in Hamburg. It is one of Europe's largest publications of its kind, with a weekly circulation of more than one million.-Overview:...
that ReactOS is directed at Windows users who want to renounce use of proprietary commercial software without having to switch to Linux.
However, ReactOS has been observed to have challenges. In response to Dvorak's column, ZDNet
ZDNet
ZDNet is a business technology news website published by CBS Interactive, along with TechRepublic and SmartPlanet. The brand was founded on April 1, 1991 as a general interest technology portal from Ziff Davis and evolved into an enterprise IT-focused online publication owned by CNET...
technology journalist Dana Blankenhorn has noted that a lack of corporate sponsors and partners has currently rendered the project harmless to Microsoft. Echoing this, Thom Holwerda of OSNews categorized ReactOS under a family of hobby operating systems that are maintained only by small groups of developers working in their spare time, and lack the financial support of more mainstream operating systems as well as the legacy of formerly mainstream ones such as RISC OS
RISC OS
RISC OS is a computer operating system originally developed by Acorn Computers Ltd in Cambridge, England for their range of desktop computers, based on their own ARM architecture. First released in 1987, under the name Arthur, the subsequent iteration was renamed as in 1988...
.
Demonstrations of the operating system have been given, mainly to Russian political figures. Viktor Alksnis
Viktor Alksnis
Viktor Alksnis is an ethnic Latvian Russian politician and former Soviet Air Force colonel. He is the chairman of Russian Center of Free Technologies, an organization intended to promote Free Software and open standards in Russia...
has met with current project coordinator Aleksey Bragin, who gave a presentation and demonstration of the project, showing ReactOS running with Total Commander
Total Commander
Total Commander is an Orthodox File Manager software for Windows, Windows CE, and Windows Mobile. Some features include a built-in FTP client, file compare, archive file navigation, and a versatile multi-rename tool with regular expression support....
and Mozilla Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...
. Dimitry Medvedev was also given a demonstration during a visit as President of Russia to a high school in Verhnerusskoe, Stavropol
Stavropol
-International relations:-Twin towns/sister cities:Stavropol is twinned with: Des Moines, United States Béziers, France Pazardzhik, Bulgaria-External links:* **...
, attended by one of the development team members.
Related projects
- ReactOS shares some dependencies with WineWine (software)Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...
. - Other related projects are SambaSamba (software)Samba is a free software re-implementation, originally developed by Andrew Tridgell, of the SMB/CIFS networking protocol. As of version 3, Samba provides file and print services for various Microsoft Windows clients and can integrate with a Windows Server domain, either as a Primary Domain...
/Samba TNG, which implement LSASSLocal Security Authority Subsystem ServiceLocal Security Authority Subsystem Service , is a process in Microsoft Windows operating systems that is responsible for enforcing the security policy on the system. It verifies users logging on to a Windows computer or server, handles password changes, and creates access tokens...
, SAMSecurity Account ManagerThe Security Accounts Manager is a registry file in Windows NT, Windows 2000, Windows XP, Windows Vista and Windows 7. It stores users' passwords in a hashed format...
, NETLOGON, Print spooling and other Windows network services. - A more distant project at the architectural level is the Linux Unified Kernel which intends to be binary-compatible with application software and device drivers made for Microsoft Windows and Linux. This kernel imports all the key features of the Windows kernel into the Linux equivalent to support both Linux and Windows applications and device drivers.
- NDISwrapperNdisWrapperNDISwrapper, is a free software driver wrapper that enables the use of Windows XP drivers for network devices , on Linux only operating systems. NDISwrapper works by implementing the Windows kernel and NDIS APIs, and dynamically linking the Windows drivers to this implementation...
recreated a partial Windows NT kernel inside a Linux Kernel making it possible to execute modern Windows drivers inside the NT kernel box. NDISWrapper consists of a NTOSKRNL API, a basic WDMWindows Driver ModelIn computing, the Windows Driver Model — also known at one point as the Win32 Driver Model — is a framework for device drivers that was introduced with Windows 98 and Windows 2000 to replace VxD, which was used on older versions of Windows such as Windows 95 and Windows 3.1, as well...
controller, and a set of Windows call wrappers such as Wireless/NDIS/USB/PnP to Linux APIs. NDISWrapper is not limited to execute only NDIS drivers; other WDM drivers can be used as long as the driver does not call a non implemented Windows API. - Independently of but roughly simultaneously with the NDISwrapper project, Bill Paul of Wind River Systems developed a similar system, known as Project Evil or The NDISulator, for FreeBSD. It has since been ported to NetBSD, but not OpenBSD, due to the latter's anti-binary blobBinary blobIn the free software community, binary blob is a pejorative term for an object file loaded into the kernel of a open source operating system without publicly available source code...
policy. The NDISulator lacks some of the functionality of NDISwrapper, such as USB support. - NTFS-3GNTFS-3GNTFS-3G is an open source cross-platform implementation of the Microsoft Windows NTFS file system with read-write support. NTFS-3G often uses the FUSE file system interface, so it can run unmodified on many different operating systems. It is runnable on Linux, FreeBSD, NetBSD, OpenSolaris, BeOS,...
, NTFS driver for Linux, Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, FreeBSDFreeBSDFreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
, NetBSDNetBSDNetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...
, OpenSolarisOpenSolarisOpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...
, QNXQNXQNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. The product was originally developed by Canadian company, QNX Software Systems, which was later acquired by Canadian BlackBerry-producer Research In Motion.-Description:As a microkernel-based...
, HaikuHaiku (operating system)Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....
, and other operating systems. - WOOS project is based on ReactOS code.
System requirements
- x86-compatible processor, Pentium or later
- 24 MB RAM (optimal 128MB)
- IDE hard drive of at least 150 MB
- FAT16/FAT32 Boot partition
- 2 MB VGA graphics adapter
- CD-ROM drive
- Standard keyboard
- PS/2 Compatible mouse or Microsoft Mouse-compatible serial mouse
See also
- coLinux
- E/OSE/OSE/OS is a virtual machine emulation system.E/OS is primarily based on the Linux kernel, QEMU, XFree86, and Wine, and is intended to be a replacement for operating systems such as Microsoft Windows, Mac OS, BeOS, OS/2, DOS, and Linux...
- Freedows OSFreedows OSFreedows OS was an open source attempt at creating a MS-Windows clone for x86 platforms, intended to be released under the GNU General Public License, started in 1996 by Reece K. Sellin,...
- HX DOS ExtenderHX DOS ExtenderThe HX DOS Extender is a free DOS extender with built-in Win32 PE file format support. Usually the purpose of a DOS extender is to make protected mode features, especially large memory and 32-bit addressing, available for DOS applications. HX fully supports this goal, but goes some steps further...
- Binary code compatibility