HomeBrainDump ReactOS: Windows Makeover from Scratch
ReactOS: Windows Makeover from Scratch
This more than 12-year-old project doesn’t seem to get enough recognition. ReactOS started in 1996 with seemingly impossible goals. Right now, even though the project is still in the alpha phase (0.3.9), lots of milestones have been reached. ReactOS is totally written from scratch, resulting in Windows XP/2003-like OS implementation that gives full binary compatibility with Windows applications, NT/XP drivers, and hardware.
Having said this, ReactOS is a free operating system that is downloadable by anyone, currently in alpha stage, meaning it’s not recommended for everyday usage. As of the past few years, heavy development has been going into this, and developers have promised that starting from 0.5 releases, the project aims to reach the beta stage—thus, suitable for everyday use.
Throughout this article we will review its current release (0.3.9), clearly pointing out its capabilities. But before we begin, we think it’s truly important to understand how cloning an operating system without infringing copyrights and development secrets is possible. Once we’ve understood this and the effort that’s been put into it, we’ll move on.
In order to demystify some of the misconceptions regarding ReactOS, it should be understood that it’s not yet another Linux distribution with a Windows-like look-and-feel. The project was written using complex reverse-engineering techniques. Everything was designed and coded from the ground up, starting from its kernel, user interface, and GDI, up to its API. It follows the exact architecture that Windows was built upon. That’s how ReactOS is able to make the following claim:
“The ultimate goal of ReactOS is to allow you to remove Windows® and install ReactOS without the end user noticing the change.”
Now let’s begin to understand how this is possible in detail and find out Microsoft’s reaction to the development of such a project. You can pretty much guess they weren’t delighted to hear about its progress. We’ve already experienced ugly lawsuits in the past, such as Apple Computer Inc. v. Microsoft Corporation that everyone has heard about.
It all started back in 1996, and its initial name was FreeWin95. During the first two years, there wasn't much progress made. The project got renamed to ReactOS, and its new target was Windows NT—meaning its developers hoped to create a clone of that. At first, the most basic kernels and drivers were written. Moving further, the shell was designed.
The first promising alpha version was 0.2.0, since it was capable of running some of the most popular Windows applications, such as Notepad and Regedit, and it also sported a Registry Editor. At this point, compatibility with some games had already been attempted, such as Unreal Tournament. Starting with the 0.3.0 version, lots of other additions and improvements were introduced in terms of USB, SMB, TCP/IP, plug-and-play, and overall stability.
Then, the project faced a huge pitfall: at the beginning of 2006, due to some claims that the project implemented leaked code and was working with disassembled Microsoft Windows code, its development was stopped, downloading of the project was halted (including the source code), and an internal audit was conducted in order to decide what really happened.
In Q3 2007 the audit was finished, and the results were favorable for the project; it has become official that the developers had used nothing but clean room reverse-engineering. This is the Chinese wall technique that is often used in software development. It is a legally accepted strategy that implies that the coders have no knowledge of the proprietary techniques/design used by the competitor.
(Main shell and GUI of ReactOS with beautiful wallpaper)
When the internal audit was conducted, the entire source code of ReactOS ran to about three million lines. Of course, the project was stalled during this time—but right after the audit they could restart the development. It is since the audit that real progress has been made. The only thing that is still viable is that ReactOS may be threatened by implementing some patents, such as long file names (LFN) and others.
Of course, trying to stop the project and make the developers liable for these kinds of “negligible” patents would be a bit over the edge and trying too hard from the attacker’s part, but hey, they’d be legally allowed to do so. Even so, these issues could be solved relatively quickly by changing their names and implementation.
Right now the developers are working hard on implementing USB support. The latest 0.3.9 alpha edition lacks some other key functions and features as well, such as networking and searching for files. Surely, many of these aren’t that critical, since once the groundwork has been done, the rest just takes time. And the Windows NT kernel compatibility and overall Win32 (application) support is up to 50% or so.
One of the best attributes for most users is that the graphical user interface and the entire look-and-feel of ReactOS are not only similar, but akin to an almost perfect clone of traditional Windows. Everything from the Control Panel and Device Manager up to the My Computer and Date/Time settings (as seen below) looks like it has just been taken from Windows—this includes the positioning of buttons, labels, etc.
Now that we know some of the project’s history, it’s time to actually try it out.
Anyone can give ReactOS a try. It comes in numerous variations, but the most favorable one is the Live-CD edition. This is the kind of “test-driving” lots of people often use in the case of Linux distributions and so forth. Check out the download page.
(Just starting OO.org 2.0—Photo Courtesy of ReactOS)
The other possible versions are the installation CD or the virtualization editions (preloaded with either QEMU or VMWare). Moving on, the first impressions are positive for everyone, we’re sure about that. Glance below to see its start menu. It looks familiar, right? Anyway, don’t start looking for many programs since it is pretty "empty."
(Implementation of Windows-XP like Start Menu—Photo Courtesy of ReactOS)
Installing and running Microsoft Windows applications is possible. Below you can see an example of ReactOS running Activision’s Enemy Territory. Sure, the game is more than five years old and it’s based on the Quake III engine, but it’s an awesome start. Once most of the features are included and ReactOS becomes a “beta,” chances are lots of new additions and support for new technologies will be added—starting with DirectX.
(Enemy Territory—Photo Courtesy of ReactOS)
As mentioned earlier, the developers are designing and working on some sort of DirectX equivalent that’s called ReactX. Many other open-source technologies are being implemented within and incorporated into the project such as .NET (via Mono) and Java support, compatibility with NTFS, remote desktop support/terminal services, and more.
Test-driving ReactOS is a promising adventure, but that’s all. It is not bloated, and right now some people may even claim that it comes “ultra-clean” since it does not have any programs at all (a working Notepad clone is included, though). For word processing, for example, we’d recommend installing either AbiWord or OO.org. They both work fine. For web browsing you may want to try Firefox, but hey—first let’s wait for the 0.4 alpha that ought to include networking support.
Tinkering around may lead to some unexpected crashes every so often, which leads to the idea that there’s still lots of polishing and bug-tracking to be applied. However, the real number one advantage and beauty of ReactOS is its compatibility with other Windows applications. Implementing this was the toughest; it basically means the groundwork has been done. The rest is just polishing and spicing things up.
All right, arriving here means that we should be ending this article soon. But we cannot do that before we draw some conclusions, reveal our final thoughts regarding ReactOS, and give a thumbs-up to its admirable progress as of late. Fortunately, right now no one is stopping them from moving forward; let’s hope it stays that way. If all goes well, in the near future we will be dual- or triple-booting into the 0.5 beta.
The project has finally achieved a state where most end users would not really notice the difference, but just think: it is some crazy modification of a stripped-down Windows XP. Sure, it has its flaws and there’s still room for improvement; ReactOS is nowhere near stable, complete, or anything like that—but we cannot neglect the fact that it’s damn promising, especially given the way it works and looks already. Support for already-existing applications is the “shocking experience.” It feels ready with that part.
What happened behind closed doors might be scary for some people, since it has been basically proven that if a bunch of coders sharing the same motivation and goals want to re-create something from the ground up—they can. Just like a bunch of architects could re-design the exact plan of building just by seeing and walking through it. And then they could clone it so perfectly that its inhabitants wouldn’t notice the difference.
Giving ReactOS a rating for its “current state” would be unfair since it’s a work in progress. As I mentioned earlier, all we can do is hand out big cheers for the effort that’s been put into it by the developers, despite the extensive ongoing audits and claims of copyright infringements. It looks promising, but lots of features have yet to be implemented—these include some key features as well, like networking, NTFS, USB, SMB, etc.
Chances are the project will reach a huge audience, and lots of other willing software developers once it reaches beta stage. Then, and only then, will ReactOS become a project that can stand on its own legs and grow further. This is huge, since right now it’s little-known, and many people find it by accident—unfortunately.
Give it a try! Show your friends and relatives what the freeReactOS looks like!
In closing, I’d like to invite you to join our experienced community of technology professionals on all areas of IT&C starting from software and hardware up to consumer electronics at Dev Hardware Forums. Also, be sure to check out the community of our sister site at Dev Shed Forums. We are friendly and we’ll do our best to help you.