ReactOS 0.3.17 Desktop
|Written in||C, C++|
|Source model||Open source|
|Latest release||0.3.17 / November 5, 2014|
|Latest preview||0.3.17 RC5 / October 29, 2014|
|Marketing target||Personal computing|
|Platforms||IA-32, x86-64, ARM|
|Kernel type||Hybrid (designed to be compatible with Windows NT and beyond)|
|Default user interface||Graphical (ReactOS Explorer)|
|License||GNU GPL, LGPL and BSD licenses|
ReactOS is an open-source operating system intended to be binary-compatible with computer programs and device drivers made for Windows Server 2003. 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. Progress has been hampered by a lack of developers with relevant skill-sets.
ReactOS has been noted for its information on undocumented Windows APIs and more generally as a potential open-source drop-in replacement for Windows. As stated on the official website, "The main goal of the ReactOS project is to provide an operating system which is binary compatible with Windows ... such that people accustomed to the familiar user interface of Windows would find using ReactOS straightforward. The ultimate goal of ReactOS is to allow you to remove Windows and install ReactOS without the end user noticing the change."
- Early development: FreeWin95 to ReactOS 1.1
- Internal audit 1.2
- Demonstration to political figures 1.3
- Summer of Code participations 1.4
- Funding campaigns 1.5
- Thorium Core Cloud Desktop project 1.6
- ReactOS Community Edition 1.7
- Open Source Support Program 1.8
- ReactOS Hackfest 2015 1.9
- Release history 2
- Wine 3.1.1
- Networking 3.1.2
- USB 3.1.3
- Other 3.1.4
- Dependencies 3.1
- Ports 4
- Usability 5
- Awards 6.1
- Related projects 7
- System requirements 8
- Future implementations 9
- See also 10
- References 11
- External links 12
Early development: FreeWin95 to ReactOS
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 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. The name ReactOS was coined by Jeff Knox. 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.
A claim was made on January 17, 2006 by now former developer Hartmut Birr on the ReactOS Developers mailing list (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. When approached by 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 remains difficult to this date. Contributions from several active ReactOS developers have been accepted post-audit, and low level cooperation for bug fixes still occurs.
In a statement on its website, ReactOS cited differing legal definitions of what constitutes clean-room reverse engineering as a cause for the conflict. Some countries, including the United States, require that a reimplementation based on disassembled code must 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 has also been replaced as a natural progression in ReactOS development, with developers having reimplemented the functionality in C for portability reasons.
Demonstration to political figures
Demonstrations of the operating system have been given, mainly to Russian political figures. Viktor Alksnis met with project coordinator Aleksey Bragin, who gave a presentation and demonstration of the project, showing ReactOS running with Total Commander and Mozilla Firefox in 2007. Dmitry 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 in 2011.
Summer of Code participations
Starting in 2006 the ReactOS project participated in several Google Summer of Codes. For example, in the GSOC 2011 ReactOS mentored a student project which integrated lwIP into the network stack.
On May 1, 2012 a 30,000 euro funding campaign was started to finance additional development projects. On the end of the year approximately 50% of the funding goal was achieved and it was decided to continue the funding campaign without deadlines. The money went to ReactOS Deutschland e. V.. As the tax law in Germany for this form of a registered voluntary association (Eingetragener Verein) makes it problematic to pay developers directly, indirect possibilities like Stipends were evaluated.
Thorium Core Cloud Desktop project
When ReactOS was awarded as Project of the Month on Kickstarter campaign was announced in an interview with the project's coordinator, Aleksey Bragin.
On December 23, 2013 the announced project was revealed as a Kickstarter campaign with the goal of US$120,000 was started. The Thorium Core Cloud Desktop dubbed Cloud computing service would use ReactOS as core and could allow the use of Windows compatible applications from mobile devices (like smartphones, tablets), workstations or any other connected device. On February 21, 2014, fundraising ended short of the target amount, with $48,965 of $120,000 raised, resulting in no transferred money.
ReactOS Community Edition
In April 2014, the ReactOS project announced an Indiegogo campaign to launch ReactOS Community Edition, a version of ReactOS based on the upcoming 0.4 release. The flexible funding campaign had a goal of US$50,000 with additional stretch goals beyond that. Development of ReactOS Community Edition would be community-centric, with ReactOS users voting and funding to decide which software and hardware drivers the project will aim to support. On June 1, 2014, the flexible crowdfunding campaign on Indiegogo was finished with raising $25,141 for the development of the community edition, and the voting process to support hardware and software was started shortly after.
Open Source Support Program
In 2015 the "Open Source Support Program" was started as free service provided by the ReactOS Foundation. Applications that participate in the "Open Source Support Program" enjoy inclusion into the ReactOS Desktop App Manager and into the new ReactOS Setup App Manager.
ReactOS Hackfest 2015
|System Version||Release Date||Release Information|
|0.2.0||2004-01-25||first release with working GUI|
|0.2.1||2004-03-03||bug fixes only|
|0.2.5||2005-01-02||Import Notepad from WINE, Added Date/Time application|
|0.2.6||2005-04-09||NVIDIA OpenGL hardware acceleration works, NCITool created for generating system call database files|
|0.2.7||2005-08-21||New Command Prompt, My Computer and ReactOS logo icons, Improved first-stage installer appearance|
|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.7||2008-11-04||improved x86-64; 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.|
|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 support; SxS support; partial EMS support|
|0.3.13||2011-03-22||heap manager rewrite, improved SATA support, fixed graphics issues|
|0.3.14||2012-02-07||ACPI enabled by default, WiFi support (unencrypted and WEP), theme support, new TCP/IP driver (LwIP), MSVC compatibility, Scatter/Gather DMA operations supported, shell32 rewrite|
|0.3.15||2013-05-30||USB support for mice, keyboard, and storage devices; rewritten session management; AHCI support with updated UniATA driver; alternate ReactOS Memory Management Module has taken over all memory management responsibilities except for sections; preliminary support for debugging ReactOS components using windbg; improvements based on results from the AutoHotKey application functionality test suite; Bugfixes based on running Driver Verifier on several bundled drivers|
|0.3.16||2014-02-06||CSRSS rewrite; theme support improved; network card driver for the RTL8139, allowing ReactOS to support newer versions of QEMU out of the box|
|0.3.17||2014-11-05||inclusion of NTVDM; font improvements; bug fixes|
|0.4.0||Future release||More USB support, new explorer to be fully implemented, improved networking and user friendly wifi setup, better sound support|
|Red||Release no longer supported|
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.
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.3 (Windows 8.1), 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.
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
- Official website
- ReactOS on SourceForge.net
- Old ReactOS Explorer (no longer used)
- Screenshots of ReactOS
- Detailed review of ReactOS (from 2006)
- A personal appeal from ReactOS Project Coordinator Aleksey Bragin, accessed on April 15, 2013
- Spenderliste December 24, 2012, accessed on April 15, 2013 (in german)
- reactos-community-edition on indiegogo (June 1, 2014)
- Open Source Support ProgramPushing open source from reactos.com
- ReactOS Hackfest 2015 from reactos.com
- Native support for file system NTFS, especially when installing and booting ReactOS
- Native support for formatting partition greater than 32 GiB using file system FAT32
- Native support for formatting partition using file system NTFS
- Native support for formatting partition using file system exFAT
- Native support for partition mapping scheme GUID Partition Table, especially when installing and booting ReactOS (both x86 and x64) on PCs using firmware UEFI
- Native support for formatting partition using file system FAT32 on a partition of hard disk drives or solid-state drives using partition mapping scheme GUID Partition Table
- Native support for formatting partition using file system exFAT on a partition of hard disk drives or solid-state drives using partition mapping scheme GUID Partition Table
- Native support for solid-state drives
- Native support for hard disk drives based on Advanced Format, especially 4Kn
- Native support for striping (RAID 0) and mirroring (RAID 1) a set of at least 2 hard disk drives or solid-state drives
- Native support for spanned volumes (disk concatenation) of at least 2 hard disk drives or solid-state drives
- Native support for touchscreen displays
- Native support for USB 3.0
- Native support for USB 3.1 type C
- Native support for ThunderBolt
- x86 or x86-64 compatible processor, Pentium or later
- 64 MB RAM (256 MB recommended)
- IDE/SATA hard drive of at least 350 MB on the primary partition
- FAT16/FAT32 primary boot partition
- 2 MB VGA graphics adapter (VESA BIOS version 2.0 or later)
- CD-ROM drive
- Standard keyboard
- USB mouse, PS/2 Compatible mouse or Microsoft Mouse-compatible serial mouse
- ReactOS shares some dependencies with Wine.
- Samba/Samba TNG implements LSASS, SAM, NETLOGON, Print spooling and other Windows network services.
- NDISwrapper recreated a partial Windows NT kernel inside a Linux Kernel making it possible to execute modern Windows drivers in Linux. It consists of a NTOSKRNL API, a basic WDM controller, and a set of Windows call wrappers such as Wireless/NDIS/USB/PnP to Linux APIs.
- NTFS-3G, NTFS driver for Linux, Mac OS X, FreeBSD, NetBSD, OpenSolaris, QNX, Haiku, and other operating systems.
- Serial ATA drivers are provided by UniATA.
- FreeType is a software development library, available in source and binary forms, used to render text on to bitmaps and provides support for other font-related operations.
- Tango Desktop Project is an open-source initiative to create a set of design guidelines and to provide a consistent user experience for applications on desktop environments.
- Longene (previously known as Linux Unified Kernel), an operating system kernel intended to be binary-compatible with application software and device drivers made for both Microsoft Windows and Linux.
- KernelEx - an Open Source compatibility layer that allows the use of Windows-NT-dependant software on Windows 95/98 and Millennium operating systems.
 ReactOS was a featured project on
The ReactOS Project won on the annual Seliger Youth Forum "The Best Presentation" award with 100,000 Russian rubles (≈US$2700) in 2011, attended by Alexander Rechitskiy, one of the development team members.
In response to Dvorak's column, ZDNet technology journalist Dana Blankenhorn noted in 2008 that a lack of corporate sponsors and partners had rendered the project harmless to Microsoft. Echoing this, Thom Holwerda of OSNews in 2009 categorized ReactOS under a family of hobby operating systems maintained only by small groups of developers working in their spare time, lacking the financial support of more mainstream operating systems and the legacy of formerly mainstream ones such as RISC OS.
In his column for Free Software Magazine, David Sugar noted in 2006 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 in 2008 that the Windows NT architecture had remained largely unchanged, making it an ideal candidate for cloning, and believed that ReactOS could be "a bigger threat than Linux to Microsoft's dominance". Aleksey Bragin mentioned in a comment to German weekly magazine Der Spiegel in 2004 that ReactOS was directed at Windows users who want to renounce use of proprietary commercial software without having to switch to Linux.
Various people have acknowledged ReactOS and the implications of having a viable open-source drop-in replacement for Windows.
As of November 2014 the ReactOS Web site said that the operating system was "not feature-complete and is recommended only for evaluation and testing purposes".
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 was incomplete, and only a few Windows applications ran without problems. At the same presentation, the operating system was described as quite stable, with a very short installation and boot time.
ReactOS has been partially ported to the AMD64 and ARM architectures. Support for the Xbox, 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.
A fork of rdesktop is used as an implementation of a client software for Microsoft's proprietary Remote Desktop Protocol. FreeType 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, and makes use of MinGW, SYSLINUX, adns, ICU, GraphApp, Ext2, GNU FreeFont, DejaVu fonts, Liberation fonts.
ReactOS makes use of the USB stack from Haiku both as a reference and as a foundation for its USB support. The data structures used to define USB requests and messages were adapted to help plug holes in ReactOS's own USB stack.
As part of its participation in the Google Summer of Code 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.
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. 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.ADVAPI32 and GDI32, KERNEL32, USER32, NTDLL Wine's .API Win32 project so that it can benefit from Wine's progress in implementing the WineReactOS uses portions of the
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.
 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. since its inception.Subversion of 104 present and former users who have contributed code to the project via cumulative total, the page followed through the "Very large, active development team" link lists 33 developers who have contributed over a 12-month period and a Ohloh As of 2 September 2011, in the ReactOS entry in