![]() | |
![]() | |
Developer | Community contributors The ReactOS developers |
---|---|
Written in | C,C++[3] |
OS family | Windows NT-like |
Working state | Alpha |
Source model | Open-source[4] |
Initial release | (partial) 1998; 27 years ago (1998) |
Latest preview | 0.4.14[5][1][2] / 16 December 2021; 3 years ago (2021-12-16)[5] |
Repository | |
Marketing target | Personal computing |
Update method | CD-ROMISO image,QEMU image,VirtualBox image,VMware image, orsource code[6] |
Platforms | IA-32,x86-64 |
Kernel type | Hybrid (designed to becompatible withWindows NT family) |
Influenced by | Microsoft Windows |
Default user interface | Graphical (ReactOS Explorer) |
License | GPL-2.0-or-later[a] |
Official website | www |
ReactOS is afree and open-sourceoperating system fori586/amd64personal computers intended to bebinary-compatible withcomputer programs anddevice drivers developed forWindows Server 2003 and later versions of Microsoft Windows.[7][8] ReactOS has been noted as a potential open-sourcedrop-in replacement for Windows[9][10][11] and for its information onundocumentedWindows APIs.[12]
ReactOS has been in development since 1996. As of February 2025[update], it is still considered feature-incompletealpha software, and is therefore recommended by the developers only for evaluation and testing purposes.[13][14] However, many Windows applications are working, such asAdobe Reader 9.3,GIMP 2.6, andLibreOffice 5.4.[15][16]
ReactOS is primarily written inC, with some elements, such as ReactOSFile Explorer, written inC++. The project partially implementsWindows API functionality and has been ported to theAMD64processor architecture.[17] ReactOS, as part of theFOSS ecosystem, re-uses and collaborates with many other FOSS projects,[18][19] most notably theWine project, which presents a Windows compatibility layer forUnix-like operating systems.
Around 1996, a group offree and open-source software developers started a project calledFreeWin95 to implement aclone ofWindows 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 ofWindows NT.[20] 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.[21][22] 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'smonopolistic position.[10]
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.[23] In 2015, the foundation was liquidated.[24]
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.[25] A claim was made on 17 January 2006 by developer Hartmut Birr on the ReactOS developersmailing list (ros-dev) that ReactOS contained code derived fromdisassembling Microsoft Windows.[26] The code that Birr disputed involved the function BadStack in syscall.S,[27] as well as other unspecified items.[28] Comparing this function to disassembled binaries fromWindows XP, Birr argued that the BadStack function was simplycopy-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.[29]
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 byNewsForge, Microsoft declined to comment on the incident. Since ReactOS is afree and open-source software development project, the claim triggered a negative reaction from thefree software community: in particular, Wine barred several inactive developers from providing contributions[citation needed] and formal high level cooperation between the two projects remained difficult as of 2006[update].[30]
In a statement on its website, ReactOS cited differing legal definitions of what constitutesclean-room reverse engineering as a cause for the conflict.[31] 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.[32][33] ReactOS clarified its Intellectual Property Policy Statement requirements on clean room reverse engineering to avoid potential infringement of United States law. An internal source codeaudit 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.[30] 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.[34]
Also, the 2004leaked Windows source code[35] was not seen as legal risk for ReactOS, as thetrade secret was considered indefensible in court due to broad spread.[36]
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.[37]
Starting in 2006,[38] the ReactOS project participated in severalGoogle Summers of Code. For example, in the GSoC 2011,[39] ReactOS mentored a student project which integratedlwIP into the network stack.[40]
Between 2007 and 2015, Russian ReactOS contributors representing the ReactOS Foundation made efforts at lobbying the Russian federal government. As of April 2019[update], these efforts have not yielded government support for ReactOS, and the Russia-based ReactOS Foundation has been dissolved since November 2015.[24]
On 1 May 2012, a €30,000 funding campaign was started to finance additional development projects.[48][49] At the end of the year, approximately 50% of the funding goal was achieved and it was decided to continue the funding campaign without deadlines.[50] The money went toReactOS Deutschlande. V.. As thetax law in Germany for this form of aregisteredvoluntary association (Eingetragener Verein) makes it problematic to pay developers directly;[51] indirect possibilities likestipends were evaluated.
When ReactOS was awarded as Project of the Month onSourceForge in June 2013, acrowdfunding campaign onKickstarter was announced in an interview with the project's coordinator, Aleksey Bragin.[52] On 23 December 2013 the announced project was revealed as a Kickstarter campaign with the goal of US$120,000 was started.[53][54] TheThorium Core Cloud Desktop dubbedcloud computing service would use ReactOS as core and could allow the use of Windows compatible applications frommobile devices (likesmartphones,tablets),workstations, or any other connected device. On 21 February 2014, fundraising ended short of the target amount, with $48,965 of $120,000 raised, resulting in no transferred money.[55]
In April 2014, the ReactOS project announced anIndiegogo campaign to launch ReactOS Community Edition, a version of ReactOS based on the 0.4 release. The flexible funding campaign had a goal of $50,000 with additional stretch goals beyond that.[56] 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.[57][58] On 1 June 2014, the flexible crowdfunding campaign on Indiegogo ended, raising $25,141 for the development of the community edition,[59][60] and the voting process to support hardware and software was started shortly thereafter.[61]
The ReactOS project organized ahackfest from 7 to 12 August 2015, in the German city ofAachen.[62][63][64] The Hackfest resulted in many features being added to ReactOS.
The second hackfest was organized by the ReactOS project from 14 to 18 August 2017, in the German city ofCologne.[65]
The third and fourth hackfests were organized by the ReactOS project from 16 to 21 August 2018 and from 15 to 20 August 2019 inBerlin respectively.[66][67]
System version | Release date | Release information | ||
---|---|---|---|---|
Old version, not maintained: 0.3.0 | 2006-08-27[68] | First version to officially support networking | ||
Old version, not maintained: 0.3.1 | 2007-03-10[69] | Program manager included, start of kernel rewrite | ||
Old version, not maintained: 0.3.2 | skipped | Branch created but never released[70] | ||
Old version, not maintained: 0.3.3 | 2007-09-12[70] | Kernel and win32k improvements | ||
Old version, not maintained: 0.3.4 | 2008-01-22[71] | Registry support rewrite, remote desktop client andPlug and Play | ||
Old version, not maintained: 0.3.5 | 2008-06-30[72] | Bug fixes only | ||
Old version, not maintained: 0.3.6 | 2008-08-06[73] | RTL support | ||
Old version, not maintained: 0.3.7 | 2008-11-04[74] | Improvedx86-64; MSVC, new stacks | ||
Old version, not maintained: 0.3.8 | 2009-02-04 | Introduced PSEH and multi-partition HDD support in live CD[citation needed] | ||
Old version, not maintained: 0.3.9 | 2009-04-26[75] | 24 MB minimum RAM, faster hyperspace mapping, initial sound support | ||
Old version, not maintained: 0.3.10 | 2009-07-05[76] | InitialSATA support,USB keyboard/mouse support,Paint clone, initialMSVC.[77][78] | ||
Old version, not maintained: 0.3.11 | 2009-12-16[79] | Kdcom rewrite; Chinese/Korean fonts; compatibility updates; sound system improvements | ||
Old version, not maintained: 0.3.12 | 2010-10-20[80] | Trap handler rewrite; timer and message handling rewrite;NMI support;SxS support; partialEMS support[81] | ||
Old version, not maintained: 0.3.13 | 2011-03-22[82] | Heap manager rewrite, improved SATA support, fixed graphics issues[83] | ||
Old version, not maintained: 0.3.14 | 2012-02-07[84] | ACPI enabled by default,WiFi support (unencrypted andWEP), theme support, new TCP/IP driver (LwIP), MSVC compatibility,Scatter/GatherDMA operations supported, shell32 rewrite[85] | ||
Old version, not maintained: 0.3.15 | 2013-05-30[86] | 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 usingWinDbg; improvements based on results from theAutoHotkey application functionality test suite; Bugfixes based on running Driver Verifier on several bundled drivers[87] | ||
Old version, not maintained: 0.3.16[88] | 2014-02-06[89] | CSRSS rewrite; theme support improved; network card driver for theRTL8139, allowing ReactOS to support newer versions ofQEMU out of the box[90] | ||
Old version, not maintained: 0.3.17[91] | 2014-11-05[92] | Inclusion of anNTVDM; font improvements;[93][94] bug fixes[95] | ||
Old version, not maintained: 0.4.0[96] | 2016-02-16[97] | Improved USB support, new file explorer shell and theming, improvedVirtualBox andVirtual PC support,ext2 read/write support,NTFS read support and improved networking support | ||
Old version, not maintained: 0.4.1[98] | 2016-05-17[99] | Improved Activation Context,Btrfs support, improved Shell, USB bug fixes, support for Virtual Machine Shared Folders | ||
Old version, not maintained: 0.4.2 | 2016-08-16[100] | ImprovedBtrfs andextended file system support,ReiserFS andUFS/FFS, introduced.NET Framework 2.0 and 4.0 support, Shell fixes and improvements | ||
Old version, not maintained: 0.4.3 | 2016-11-16[101] | NewWinsock library, initial sections support, usual bug fixes | ||
Old version, not maintained: 0.4.4 | 2017-02-16[102] | Initial print stack support, minor font fixes, usual improvements and bug fixes | ||
Old version, not maintained: 0.4.5 | 2017-05-18[103] | Improved rendering of fonts and font metrics, major fixes in kernel and drivers,Microsoft Office 2010 tested as functioning | ||
Old version, not maintained: 0.4.6 | 2017-09-01[104] | Several fixes fordual-boot issues, improved theming support,NFS driver added, several kernel and filesystem fixes | ||
Old version, still maintained: 0.4.7 | 2017-12-06[105] | Improved version of the applications manager RAPPS, implementation of the "Quick-Launch" toolbar in the explorer; various bug fixes in the filesystem drivers, improvements in the RDBSS/RXCE and NFS support. | ||
Old version, still maintained: 0.4.8 | 2018-04-14[106] | Balloon notifications, notification tray, shell autocompletion, a new NTFS driver, crash dump reporting and experimental support for NT6+ software. | ||
Old version, still maintained: 0.4.9 | 2018-07-23[107] | ReactOS is (again)self-hosting. | ||
Old version, still maintained: 0.4.10 | 2018-11-06[108] | Supports BTRFS booting. | ||
Old version, still maintained: 0.4.11 | 2019-03-04[109] | Drivers for battery management (its icon is located in the taskbar, in the bottom right of the screen, next to the clock). Support for updating an existing ReactOS installation. Improved SATA support. | ||
Old version, still maintained: 0.4.12 | 2019-09-23[110] | Kernel improvements, window-snapping feature, font improvements, Intel e1000 NIC driver, user-mode DLLs, new themes. | ||
Old version, still maintained: 0.4.13 | 2020-04-09[111] | New USB stack, FAT driver from FreeLoader optimized, new software introduced: Accessibility Utility Manager. | ||
Latest version:0.4.14 | 2021-12-16[5] | "Send To" feature andShell improvements,NEC PC-9800 boot support,ICMP improvements,Kernel improvements, NetKVMVirtIO bringup, miscellaneous changes & improvements | ||
Future version: 0.4.15[112] | — | Support forx64 andUEFI, combines live CD and boot CD into a singleGUI setup | ||
Future version: 0.4.16 | — | Current development version.[citation needed] | ||
Future version: 0.5.0[113] | — | Support for reading and writing theNTFS filesystem, support for theWindows Driver Model (including video card support), improvements to the printing subsystem and theDirectX Core. | ||
Legend: Old version, not maintained Old version, still maintained Latest version Latest preview version Future version |
![]() | This sectionis inlist format but may read better asprose. You can help byconverting this section, if appropriate.Editing help is available.(November 2021) |
![]() | This sectionneeds expansion. You can help byadding to it.(October 2018) |
reg
commandThe following is a non-exhaustive list ofcommands that are supported by the ReactOSCommand Prompt.[114][115][116]
Presently, ReactOS has active development in:Czech,English,Dutch,Finnish,French,German,Hebrew,Hungarian,Indonesian,Italian,Japanese,Mandarin Chinese,Norwegian,Polish,Russian,Spanish,Swedish,Thai,Ukrainian.
ReactOS is primarily written inC, with some elements, such as ReactOS Explorer and the sound stack, written inC++. The project compiles using bothMinGW andMicrosoft Visual Studio, and contributes to the development of the build systems used through the submission ofpatches to its components.[120]
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.[121]DirectX support is undertaken through ReactX, an in-house implementation. 2D andOpenGL 3D hardware-accelerated rendering is done natively, while other drawing functionality such asDirect3D is redirected to OpenGL as a stopgap solution, mostly usingWine's code such asWineD3D.[17][122]
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 implementWindows 7, Microsoft employed 1,000 or so developers, organized into 25 teams, with each team averaging 40 developers.[123] As of 2 September 2011[update], in the ReactOS entry inOhloh, the page followed through the "Very large, active development team" link lists 33 developers who have contributed over a 12-month period and acumulative total of 104 present and former users who have contributed code to the project viaApache Subversion since its inception.[124] 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.[125]
While ReactOS targets mainly thex86/AMD64PC platform,[126] an effort to port to theARM architecture was at one point "under way",[17] while it did not produce much functionality and was abandoned[127] along with a port toPowerPC, that is no longer actively maintained.[13] Support for theXbox and theNEC PC-9800, a variantIA-32 architecture, was added through the use of an architecture-specificHAL.[125][111][5] Improved 64-bit support for ReactOS is "being worked on", however, development seems to be going slowly.[128]
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.[18] Conversely, projects likeWine,[19] and formerlyCaptive NTFS[129] andLongene re-use the open-source ReactOS code-base as well.[130]
On thehardware driver side, for instance theUniATA project providesSerial ATA drivers for ReactOS.[14][131] The project has also experimented with using the FullFAT library in its rewrite of itsFATInstallable File System.[132] ReactOS makes use of theUSB stack fromHaiku both as a reference and as a foundation for its USB support.[133][134]Mesa 3D providesOpenGL rendering.[14][120]
ReactOS's network stack is built on theTCP portion of OSKit's port of the network stack inFreeBSD, along with an internally developed implementation for packet-oriented protocols likeIP.[135] Later,lwIP was integrated into the ReactOS network stack.[40]
The ReactOS and theWine projects share the goal to run binary Windows software natively and can therefore share many dependencies and development.[19][136] ReactOS uses portions of theWine project so that it can benefit from Wine's progress in implementing theWin32API.[136] While Wine'sNTDLL,USER32,KERNEL32,GDI32, andADVAPI32 components cannot be used directly by ReactOS due to architectural differences,code snippets of them and other parts can be shared between both projects. The kernel is developed by ReactOS separately as Wine relies here on existingUnix-like kernels.[120][125]
Separately, the experimentalArwinss 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 remoteX server instead of a local display.[137]
TheTango Desktop Project initiative provides open-source design guidelines and resources (asicons) for applications ondesktop environments.FreeType is an open-source software developmentlibrary, used to render text on to bitmaps and provides support for other font-related operations.[14] TheKernelEx project is a Windows-API extension and compatibility layer project, which provides open-source implementations of some Windows-APIs.[138] Other contributing projects areMinGW,SYSLINUX,adns,ICU, GraphApp,Ext2,GNU FreeFont,DejaVu fonts, andLiberation fonts.[139][140][141]
Forks based on ReactOS exist:
Various people have acknowledged ReactOS and the implications of having a viable open-sourcedrop-in replacement for Windows.[10] A 2004 article and interview of the German weekly magazineDer Spiegel describes ReactOS as directed at Windows users who want to renounce use ofproprietary commercial software without having to switch to Linux.[10]DistroWatch, aLinux distribution's monitoring Web site, also lists ReactOS and describes it as "a free and open-source operating system based on the best design principles found in theWindows NT architecture."[145]
In his column forFree 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 knowundocumented Windows APIs in the course of writing portable applications.[12]PC Magazine columnistJohn 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 thanLinux to Microsoft's dominance".[11] 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.[146][147] Echoing this, Thom Holwerda ofOSNews 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 asRISC OS.[148]
In October 2015, aNetwork World review of ReactOS v0.3.17 noted "It's just like running Windows 2000" and praised the applicationpackage manager, a feature the original Windows is missing.[149]
In August 2018, Jesse Smith from DistroWatch Weekly reviewed ReactOS v0.4.9, reporting that it suffered from limited hardware support and that it tended to lock up under load. He concluded: "[it] should be used with caution and probably not as a main, day-to-day operating system"[150]
The ReactOS Project won on the annualSeliger Youth Forum "The Best Presentation" award with 100,000Russian rubles ($2700) in 2011, attended by Alexander Rechitskiy, one of the development team members.[151]
ReactOS was a featured project onSourceForge for the weeks beginning on 27 February 2012, 25 April 2013,[152] and several others. It was Project of the Month on SourceForge for June 2013[153] and February 2019.[154]
With software specifically leaving NT5 behind, ReactOS is expanding its target to support NT6+ (Vista, Windows 8, Windows 10) software.
While the main core of ReactOS is built from scratch, it has some dependencies on existing software and protocols. It uses parts of Wine, networking in the form of lwIP, USB from Haiku, as well as FreeType, Mesa3D, and UniATA.
The ReactOS and Haiku projects have had a friendly working relationship for several years now, with each group helping the other whenever possible.
BV: Wine and ReactOS have had a mutually beneficial relationship. Is there anything Wine could do different that would help ReactOS development?[...] BV: You guys have certainly contributed a lot of your work back to Wine, including some of the utilities you've written. For instance, the task manager was recently ported from ReactOS. Do you guys have any plans in the works for developing more tools? Steven: I really want to see a solitaire clone make it in to Wine and ReactOS.[...] At some point we are going to have to develop replacement components for everything in Windows so if there is a program that Wine needs and ReactOS implements it then I will try to make sure it's released under a compatible license.
(…) ReactOS aims to run actual Windows binary executable programs. This means that ReactOS must implement the entire Windows environment. Functions must do exactly what their Windows counterparts would do. In other words, like our notional parallel stew recipes, ReactOS and Windows should be functionally identical. In order to avoid copyright prosecution, though, ReactOS must be expressly completely distinct and non-derivative from Windows. This is a careful tightrope walk! ReactOS is a free, clean room re-implemented drop-in replacement for Windows. So, consider this, especially regarding extremely simple library calls: is it legal for ReactOS to produce identical binary code to Windows?
To protect against charges of having simply (and illegally) copied IBM's BIOS, Phoenix reverse-engineered it using what's called a "clean room," or "Chinese wall", approach. First, a team of engineers studied the IBM BIOS — about 8KB of code — and described everything it did as completely as possible without using or referencing any actual code. Then Phoenix brought in a second team of programmers who had no prior knowledge of the IBM BIOS and had never seen its code. Working only from the first team's functional specifications, the second team wrote a new BIOS that operated as specified.
[...] dirty room reverse engineering should be done in conjunction with clean room development by using two physically and electronically isolated teams where one team does dirty room reverse engineering and the other does clean room development. If a dirty room team exists, the clean room engineers can write a description of the portion of the specification that needs elaboration or clarification. The dirty room engineers then use that request to create additional functional specifications or tests.
This is a page lists the students and organizations that participated in the Google Summer of Code 2006 program. [...] ReactOS
Late last year the German foundation learned that the contracts it was issuing for developers might not be compliant with German regulations involving non-profits. Due to this, the German foundation needed to temporarily halt payment to developers and consult with tax attorneys to determine how to proceed in a compliant manner.
Well I don't want to spread too many rumors, but I can say that we do have something in the works. If all goes well, it's going to be announced within a week. While I cannot go into too many details, I can say that it involves Kickstarter and what we believe to be a viable commercial product based off of [sic] ReactOS.
ReactOS raised more than $25,000 in an Indiegogo crowdfunding campaign earlier in 2014, for the development of a community edition of the operating system.
In short: It's just like running Windows 2000. Except Free and Open Source. Which makes makes it feel both awesome. And dirty. And profound... also infuriating. If I'm honest, I really don't know how ReactOS makes me feel. But it's damned impressive that it exists and works so well. Beyond simply being Open Source, ReactOS has one cool features that Windows never really provided properly: An application manager that is laid out and structured like a Linux package manager. From within it you can even install a large number of FOSS software staples, such asFirefox,LibreOffice, andGIMP.
At the forum, ReactOS won "The Best Presentation" award and a grant of 100,000 rubles (approximately 2,400 JDs). In addition, around twenty large investors became interested in the project.