ReactOS celebrates 30 years of development as an open-source Windows alternative, reflecting on its evolution from a FreeWin95 fork to a mature NT-compatible operating system.
ReactOS, the ambitious open-source project aiming to create a Windows-compatible operating system, celebrates its 30th anniversary today. What began as a reaction to Microsoft's dominance in the operating system market has evolved into a sophisticated alternative that continues to attract developers and users who believe in the mission of running "your favorite Windows apps and drivers in an open-source environment you can trust."
The Origins: From FreeWin95 to ReactOS
The project emerged from the ashes of FreeWin95, which suffered from what can only be described as analysis paralysis. The original team attempted to plan the entire system before writing any code, a classic pitfall in software development that led to stagnation. Jason Filby, frustrated by the lack of progress, took decisive action by rebranding the effort as ReactOS and shifting the target from Windows 95 to the more sophisticated Windows NT architecture.
This strategic pivot proved crucial. Windows NT offered a more robust foundation with its kernel-based architecture, providing ReactOS with a clearer technical direction. The name "ReactOS" itself was a deliberate statement—a reaction to Microsoft's monopolistic position in home computer operating systems during the late 1990s.
The Bootstrap Challenge
The early development of ReactOS mirrored the bootstrapping problem faced by many foundational software projects. Contributors first had to build a basic NT-like kernel before they could develop drivers for it, then continue developing the kernel itself. This chicken-and-egg scenario is reminiscent of creating a new programming language where you need the language to write the compiler, but you need the compiler to build the language.
Progress was painstakingly slow in these formative years. Each component had to be built from scratch, with developers learning from each other's work. The project's early contributors were essentially pioneers, charting unknown territory in reverse-engineering Windows NT's architecture while maintaining clean-room development practices to avoid intellectual property issues.
Eric Kohl's Journey: A Developer's Perspective
To understand the early days of ReactOS, I reached out to Eric Kohl, who developed the original storage driver stack for ReactOS (including atapi, scsiport, class2, disk, cdrom, and cdfs) and has been with the project since 1998. His journey into ReactOS began while searching for example code for his contributions to the WINE project.
"I subscribed to the mailing list and followed the discussions for a few days," Kohl recalled. "The developers were discussing the future of shell.exe, a little command line interpreter that could only change drives and directories and execute programs."
Kohl's contribution began with converting FreeDOS's command.com into a Win32 console application to make it 4DOS compatible—a powerful command line interpreter from that era. On December 4th, 1998, he introduced himself to the ReactOS community and suggested using his converted FreeDOS command.com as the future ReactOS cmd.exe.
"I had a little conversation with Jason Filby and Rex Joliff, the CVS repository maintainer," he explained. "I sent my cmd.exe code to Rex and he applied it to the repository. After applying a few more cmd-related patches over the next weeks, Rex asked me whether I would like to have write-access to the repository. I accepted the offer."
Kohl's description of the early development process reveals the raw, experimental nature of the project: "The first version I downloaded and used was 0.0.8. It was not much more than a DOS-based bootloader, some drivers, and a basic kernel that ran a few test routines after initialization."
He noted that version 0.0.8 didn't use PE files but flat (position independent) binaries, lacking many fundamental Windows components: "There was no PE loader, no smss, no csrss, no winlogon, no process heaps, no process environments, no threads, etc. Each and every little feature was a milestone."
The development process was remarkably informal: "Initially there was not a review process at all. You write some code, test it and fix it until it works. Then you commit it. If something failed on another machine, you got a reply on the mailing list and discussed a solution. You fixed the issue and committed a fix. That's how it worked."
Despite the technical challenges, Kohl emphasized the positive community atmosphere: "There was always an open and friendly atmosphere. It was and still is always nice to talk to other developers. No fights, no wars, like in some other projects."
ReactOS 0.1.x: The First Bootable Release
ReactOS 0.1.0, released on February 1st, 2003, marked a significant milestone as the first version that could boot from a CD. However, it was still quite rudimentary, featuring only a command line interface with no desktop environment. This release represented years of foundational work finally coalescing into something that could run on actual hardware.
The 0.2.x Era: Rapid Development and Growing Pains
The period from 2003 to 2006 saw ReactOS experience rapid development. New drivers were being built constantly, a basic desktop environment was constructed, and the operating system became increasingly stable and usable. Public interest in the project grew substantially as ReactOS matured from a proof-of-concept into something resembling a functional operating system.
In October 2005, leadership transitioned when Jason Filby stepped down as project coordinator and Steven Edwards was voted in as his successor. This period of growth wasn't without challenges, however. The project saw significant improvements in its graphical capabilities, including support for VMware video drivers for NT 4, as evidenced by the screenshots from this era.
The 0.3.x Era: Intellectual Property Challenges
The ReactOS 0.3.x era, spanning from 2006 to 2016, was defined by significant challenges related to intellectual property concerns. In January 2006, questions arose about whether contributors had access to leaked Windows source code and whether this code might have influenced their contributions.
In response to these concerns, Steven Edwards strengthened the project's intellectual property policy. The project made the difficult decision to audit the existing source code and temporarily freeze contributions. This audit and the subsequent contribution freeze slowed development considerably and dampened momentum.
Despite these challenges, ReactOS 0.3.x continued to build upon the project's legacy. ReactOS 0.3.0, released on August 28th, 2006, introduced networking support and a package manager called "Download!" This package manager would later evolve into RAPPS, the package manager built into modern versions of ReactOS.
Several significant technical milestones occurred during this period. In July 2008, the x86_64 port of ReactOS was initiated, expanding the project's reach to 64-bit architectures. One year later, ReactOS 0.3.10 imported the UniATA driver, written by Alexandr Telyatnikov (Alter). While the UniATA driver presents limitations in modern ReactOS, it was crucial for enabling support for SATA storage devices and partitions larger than 8GB.
On February 8th, 2012, ReactOS 0.3.14 achieved two important milestones: support for being built using the MSVC compiler and the addition of visual style support. These features brought ReactOS closer to Windows compatibility and improved its development toolchain.
The 0.4.x Era: Maturation and Modern Features
ReactOS 0.4.0, released on February 16th, 2016, represented a significant leap forward. It introduced a new graphical shell that utilized more Windows features and was more architecturally similar to Windows Explorer. This release also introduced support for kernel debugging using WinDbg when compiled with MSVC, a feature that has proven invaluable for development.
The ability to use standard Windows tools for kernel debugging has helped the project progress considerably, as developers can leverage familiar debugging workflows and tools.
ReactOS 0.4.0 continued to receive incremental updates every few months until versions 0.4.14 and 0.4.15, which each had years of development updates. During this period, the x86_64 port of ReactOS reached functional parity with its x86 counterpart, though its usability remains limited without a WoW64 subsystem to run x86 applications.
The Future of ReactOS
Looking forward, ReactOS continues to evolve with several exciting out-of-tree projects in development. These include:
- A new build environment for developers (RosBE)
- A new NTFS driver
- A new ATA driver
- Multi-processor (SMP) support
- Support for class 3 UEFI systems
- Kernel and usermode address space layout randomization (ASLR)
- Support for modern GPU drivers built on WDDM
These developments suggest ReactOS is positioning itself for broader hardware compatibility and improved security features, addressing some of the limitations that have historically constrained its adoption.
The Community's Role
The future of ReactOS will be written by those who believe in its mission and are willing to contribute. The project welcomes various forms of participation:
- Financial contributions to support development
- Opening pull requests on GitHub
- Testing and filing bug reports
Even small contributions can make a significant difference in advancing the project's goals.
Project Statistics: 30 Years of Development
To appreciate the scale of this three-decade effort, consider these statistics calculated at commit f60b1c9:
- Total commits: 88,198
- Total unique contributors: 301
- Total files: 31,025
- Total lines of code: 14,929,578
These numbers reflect not just the technical complexity of the project but the sustained commitment of hundreds of developers over three decades.
Reflections on a Three-Decade Journey
As someone reflecting on ReactOS's 30-year history, it's remarkable to consider how the project has persisted through multiple technological shifts. From the Windows 95 era through the NT transition, from 32-bit to 64-bit computing, from BIOS to UEFI, ReactOS has adapted and evolved while maintaining its core mission.
The project's longevity speaks to the enduring appeal of open-source alternatives to proprietary software. In an era where concerns about vendor lock-in, privacy, and software freedom remain relevant, ReactOS represents a unique approach: rather than creating something entirely new, it aims to provide compatibility with the vast ecosystem of Windows software and drivers while maintaining open-source principles.
For many current contributors, including myself, ReactOS predates our existence as developers. Yet the project continues to attract new participants who see value in its mission. This generational continuity—where developers who weren't alive when ReactOS began are now contributing to its future—demonstrates the project's lasting relevance.
As ReactOS enters its fourth decade, it stands as a testament to what dedicated open-source communities can achieve over time. While it may not yet be a complete replacement for Windows in all use cases, its continued development and growing capabilities suggest that the dream of a fully open-source Windows-compatible operating system remains very much alive.
The next 30 years of ReactOS will likely be shaped by the same factors that have defined its first three decades: technical innovation, community collaboration, and an unwavering commitment to the principle that users should have control over their computing environment. As the project continues to evolve, it will be fascinating to see how it adapts to future technological changes while staying true to its founding mission.

Comments
Please log in or register to join the discussion