Difference between revisions of "ReactOS FAQ"

From ReactOS Wiki
Jump to: navigation, search
m (Who should I talk to about helping ReactOS?)
m (Who should I talk to about helping ReactOS?)
Line 109: Line 109:
[https://chat.reactos.org/reactos/channels/town-square/ MatterMost Town Square]
Alternatively you can use the IRC channel.
Alternatively you can use the IRC channel.

Revision as of 12:42, 30 January 2020


User FAQ

What is ReactOS?


Why re-implement NT?

First of all, the 'Windows' the general public knows is actually just one part of the modern Windows NT™ operating system. They usually mean the Win32 subsystem, a layer that sits upon the NT kernel, providing the user and application interface.

"NT is still around, known as XP and Vista"

Most people think of 'NT' as 'WinNT 4', while in reality the term NT refers to the NT series, which ranges from version 3 over NT5 (2000, XP, 2003) and NT6 (Vista, 2008, 7, 8, 2012, 8.1) to NT10 (10, 2016).

The NT architecture was designed by a team lead by David Cutler, a former lead developer of VMS. It took them more than 4 years to combine the best of UNIX, VMS and OS/2 and create the NT architecture.

What about UNIX?

Mac OS X, Linux, BSD and other UNIX derivatives share a common heritage based on a more than three decades old design of a simple basic operating system, that has evolved over time into a complex structure. Modern incarnations like Mac OS X put a fancy graphical user interface on top of UNIX, to hide system details, but focus mainly on beginners, and many advanced users are left out in the rain, as most advanced features cannot be accessed from the graphical user interface. Almost all UNIX flavors retain some of the original design flaws and binary compatibility between various versions is usually non-existent.

In theory there are a few UNIX standards like POSIX but in practice the standards are old and cover only the basic operating system and the terminal environment. Other standards such as the Linux Standard Base are often not implemented faithfully. As there is no user interface standard nor a standard API, most people still have to use command line applications or fight through the GUI mess. Many UNIX derivatives use the de-facto standard X-Window system for graphical output, which might well possess one of the worst designs in software history. Still, modern UNIX derivatives are trying to catch up with recent innovations and some of them already possess important features like access control list support.


Why use ReactOS?

A lot of people in popular discussion forums keep asking “why should I use ReactOS” or “why would someone need ReactOS” or “why not help develop Wine instead?” or “why not use Linux with Wine?”.

We have an answer for all these questions, but it's not some simple magic word. Let's name a few key issues here:

  • There are plenty of *nix operating systems out there, this is very good. However they have different targeting (they perfectly fit the server market, but the desktop still isn't conquered, and several factors work against most Windows alternatives out today).
  • There is currently no operating system which implements the kernel architecture design of MS Windows NT™ family (GNU/Linux is the best for comparison here: Linux was started as “clone” of Minix and Unix (eventually going on to be a Unix replacement), and ReactOS was started as “clone” of Windows NT).
  • Linux+Wine is never going to be a complete replacement for a full Windows system. It's not only because of Linux (despite some really user-friendly Linux distributions out there), and not only because many users might find a transition to Linux/BSD difficult, but it's due to design and implementation decisions of Linux and Wine architectures, which prevent 100% compatibility.
  • Even though Linux supports many types of hardware, Windows is still the dominant platform for device manufacturers. There are attempts to overcome this situation (like NDIS Wrapper for NT network card drivers, there are rumours about supporting NT video drivers, Captive NTFS for NT filesystem support), but ReactOS solves them from the first day by its design – be compatible with existing drivers and existing applications.
  • There are many people who do not like how *nix systems behave or dislike the conventions used. For them, Linux, BSD, and Mac OS X are not options, even before application compatibility and hardware support come into play. An operating system should give the consumers what they want instead of demanding the consumer conform. Even with Wine, you are still running an operating system that behaves quite differently from Windows, at both the user and system levels.
  • Backwards compatibility. This is something vital for many people and companies, but the development philosophy of Linux and the GNU project do not consider it a priority. The Windows family has always gone out of its way to ensure a stable API and backwards compatibility. By its design, ReactOS will also follow the philosophy of backwards compatibility with existing and future applications designed for the Windows NT family.

There are no plans for any of Microsoft's versions of Windows to be released under a GPL-compatible license (at least, ReactOS team is not aware of them).


Is ReactOS based on Microsoft Windows™?

No! ReactOS consists only of GNU GPL (General Public License) and GPL compatible licensed source code.

Is ReactOS based on *nix or Linux?


Is ReactOS legal?

Yes. ReactOS is fully legal.

Developers (devs) have not looked at Microsoft Windows™ source code. They have used the public documentation of Microsoft Windows OSes. They have made several tests to understand how Microsoft Windows works. In fact, ReactOS does the same things Microsoft Windows does, but not exactly in the same way, because they haven't the same source code. All code in ReactOS is under the GNU GPL (General Public License).

Why does a certain application of mine not work under ReactOS?

ReactOS is in alpha stage and not recommended for everyday use. Many applications do not work (correctly) because many API calls simply haven't been implemented yet. This may be one of the reasons for the software not working.

Why doesn't ReactOS have a modern UI?

The target is Windows 2003 and ReactOS' UI is based upon that. There are two alternative theme choices but both are suited for desktop operation. Note that neither of them are tablet-based themes. Only the naive and uninformed user believes the UI look-and-feel is in any way tied to the real functionality of the o/s. If you are comparing the default UI with that of current Windows you may not appreciate that ReactOS' UI is configurable and the interface being FOSS will be customisable in a way that current Windows is not.

Why ReactOS? Why clone Microsoft Windows™?

First of all, ReactOS is not a clone of Windows. ReactOS is an operating system that is compatible with Microsoft Windows applications and drivers. Some of the reasons are the same as the reasons for developing Linux (an open-source UNIX clone)? In short, Linux is a great operating system, but it is not the answer for everybody. There are a lot of people that like Microsoft Windows, but are very frustrated with Microsoft's policies on various issues.

The 9x family of Microsoft Windows is based on DOS, and shares many of its weaknesses, which is the primary reason why Microsoft Windows has such a bad name. The Microsoft Windows NT™ family of Windows, however, has a solid design. Not everything is perfect, but without access to the source code, there is no way to fix it, so a compatible operating system must be built from the ground up.


ReactOS is a desirable object given that it should free Windows development from the shackles of Microsoft's current business model. That is a great target in itself. When it achieves beta release it will provide a home for the continued development of legacy applications (win32, MFC and the like) and their future will be rosy well away from the UWP framework that Microsoft is imposing upon users and developers in its current business aim to dominate tablet and IoT devices.

Why don't you help develop Wine/Linux instead?

ReactOS works very closely with Wine, and thus both projects actually benefit from each other. We have several developers in both the Wine and ReactOS projects that work on cross-compatibility issues between the two projects.


Why don't you help the Wine project instead?


Where can I download ReactOS?

Please visit the download page.


How can I contribute to ReactOS?


To join our testing come to the IRC channels. Find any dev and ask us what to test. Every day the ReactOS project has different testing needs so testing is not boring.

  • We need coordinated translators.
  • We need coordinated designers.
  • We need coordinated developers.
  • We need coordinated bloggers

To find your place just come and join the IRC channels. See you there.

I don't know how to code... How can I help?

Devs always require testing of something. Just come to IRC and ask for something to test. Devs will give you some ReactOS testing work suited to your skills. The "I don't know how to code" is the preferred excuse followed by the "I don't have time" or "Each time I test ReactOS god kills a kitty" excuses.

I know how to code.... How can I help?

If you are a Dev, then join IRC and ask any doubts about our code, find a place in ReactOS to work, you can select any, but first contact and tell us. Maybe other Devs are currently working in that particular area. "Less time wasted when efforts coordinated!"-Yoda said.


Study C, C++, WinAPI, then read books as "Windows Internals" and/or "Operating System Concepts". Come and ask us. For C and C++ questions you have the C and C++ IRC channels, they will solve your doubts much faster.

What can I do to help?


Testing on real hardware is especially important as the kernel rewrite approaches completion. Some issues are known, such as missing assembly code and broken implementations causing issues on certain processors. Bugs found in trunk can be reported in Jira, but try to avoid entering duplicate bugs.

Who should I talk to about helping ReactOS?


MatterMost Town Square

Alternatively you can use the IRC channel.

Connect to the ReactOS IRC Channels

A list of the developers, their IRC nicks, and their respective fields is here: Developer Roles

Note: If you have a question, don't first ask to ask the question. Just ask the question and if someone knows the answer, they'll usually answer. If you want a specific developer then ping that developer and ask the question.

Others will be added as I figure out what they do.

Another way is to join the ROS-dev mailing list:


When will ReactOS be done?

First you need to define what ReactOS should be capable of when it is to be considered done. Since this definition may vary greatly between people, this question cannot be completely answered. One thing is for sure: ReactOS will continue to be developed, as there will always be a need for improvements. For more information, visit the Roadmap page (note it is impossible to provide a time-dependent roadmap at this stage of ReactOS development).

Why is ReactOS development so slow?

First of all, developing a Windows compatible o/s is an enormous task due to the sheer complexity of Windows and its undocumented nature. The slow development progress is primarily due to the 'enthusiast' approach of development ie. the developers are simply people like you and I. They work on whatever task they wish to, spending as much of their spare time as they can working on the project. The complexity of the task also requires certain skill sets that are not generally available within the enthusiast community. Competent Windows Kernel Developers available to contribute are thin on the ground. The pace is also partly due to the lack of sponsors leading to the majority of code being contributed by unpaid effort. It is remarkable how much the project has progressed but it has a long way to go before approaching beta stage. However, developers have a firm target and the team is a dynamic one with solid supporters and contributors.

Can I test ReactOS without risking my existing hardware/installations?



Is ReactOS able to run Windows apps and Windows drivers?

Yes. ReactOS is able to load Windows apps and Windows drivers without hacking them. Remember: we are still in the Alpha stage so we have a long walk ahead before we reach these objectives. You can visit our Software and Hardware Compatibility databases to know which Drivers and Apps are compatible with the latest ReactOS version.


How about Windows Vista™/7 programs and drivers?


Can I install ReactOS on a pen drive/stick?

See: LiveUSB



Does ReactOS have a POSIX subsystem?


I inserted the Installation CD but the installation doesn't begin

Maybe your CD/DVD is a SATA device that UniATA doesn't support yet. (So neither does ReactOS). If your CD/DVD is ATA then try the next trick:

OPTIONAL STEP (make backup files): 1)Back up uniata.sys as uniataB_UP.sys. 2)Back up atapi.sys as atapiB_UP.sys

REPLACING 3)Rename uniata.sys to atapi2.sys 4)Rename atapi.sys to uniata.sys 5)Rename atapi2.sys to atapi.sys


The installation hangs or hangs before reaching the Desktop




We perform several Coordinated Testings via IRC. Join them and you will discover the feelings of being part of the Community, not just part of the Forum.

Why there is no Roadmap?

An OS covers a wide area of knowledge, it is not an App, it is a whole,-on-the-way-to-becoming-first-class OS. So we need devs from all the areas. It's not easy to find skilled devs and also, they are not paid, they have their real-life-work, families and problems. So no, we can't press them to work in a particular area. We can just thank them for dedicating some time to make this OS become a reality.

Developer FAQ


What language do the developers use?


Why only C and assembly?


How do I get ReactOS' source code and build it?

This information is covered on this page: Build Environment


Is there any kind of coding style that is expected?

See Coding Style



Will drivers designed for Windows work on ReactOS?

Some drivers have been known to work, but at this point there is no definitive answer as some facilities in kernel land that are unimplemented.

What do I need to compile ReactOS from sources?


What about the so-called SEH-problem?

Structured exception handling (SEH) is used in programming ReactOS as it is used in programming for OS/2 or Microsoft(R) Windows(R) NT. SEH is a game which is played between the OS and compiler (Keywords: __try, __except, __finally). ReactOS itself is SEH-aware and provides the infrastructure. However up till now, the GNU-compiler used is not capable of generating SEH-aware code. So one can't compile a driver or program which uses SEH with the GNU-Compiler.

Graphics Subsystem



Why did Microsoft put the GUI in Ring 0?


Does ReactOS have the same security problems as Microsoft Windows™?



How do I trace an unhandled exception in user mode?


See Also