We are often regarded as the true techies of
the computer magazine world, portrayed almost as alchemists, bent over a seething
caldron of technology, as if forever in search for the computing equivalent of
the philoshophers’ stone, or the transmutation of lead into gold. So when a
project comes along that piques our interest, it’s little wonder we go all gaga
at what the potential could be. ReactOS is one such project that has turned our
heads
ReactOS
About ReactOS
As the developer states, ‘ReactOS is an
effort to create a Free Software replacement for Microsoft Windows, which is
compatible with existing software and hardware.’
The idea itself is very simple: Linux isn’t
always the best transition from a Windows, or non-Windows, operating system for
those users who aren’t too au fait with the nuances of technology. True it does
an admirable job, but there are times when even the most dedicated of Linux
users requires the use of Windows.
Put basically, Windows is really good at
what it does, regardless of whether you like it or not. So during 1996 a group
of open source developers started a project called FreeWin95. Back the Linux
was only for the technical demi-gods of the computing world, and Windows 95
wasn’t anywhere near as intricate as the current version of Windows is today.
Unfortunately, despite high expectations,
the project stumbled over itself and fell apart, taking with it the DOS-clone
kernel that had been developed, which was summarily dumped and vanished without
a trace. But in 1998, with the help of Jason Filby, the project coordinator, a
new branch was formed, which sought to duplicate the functionality of Windows
NT, and ReactOS was born.
Consider ReactOS as an open-source
rewriteof the Windows NT kernel, which in turn would make it compatible with
all the Windows kernel-based drivers, application and services. A free version
of Windows, which has been stripped down to its bare essentials, making it
fast, stable, light yet still powerful enough to accomplish the normal
day-to-day tasks that are required from Windows.
Why?
‘A question that’s often asked in the
face of ReactOS is “Why?”’
ReactOS
wants to become binary-compatible with Microsoft Windows
A question that’s often asked in the face
of ReactOS is ‘Why?’ Why not simply use Wind within Linux, or spend all these
resources and effort in further developing Wine? Why should we even use
ReactOS? To help, here are some of the answers to those questions, straight
from the developers itself:
There are plenty of *nix operating systems
out there, this is very good. However, they have different targeting (they
perfectly fit server markets, but 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 a ‘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 it’s Linux
(despite there being some really user-friendly Linux distros out there), and
not only because many users might find a transition to Linux/BDS 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 file system support), but ReactOS solves them from the first day by its
design to 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 a
user and system level.
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 Windows to become
released under a GPL-compatible licence (at least, ReactOS team is not aware of
them).
Reverse engineering
Here
is the screenshot showing the file create.c containing implementation of
CreateProcessA function
Interestingly, a claim was made in 2006 by
one of the former developers that ReactOS contained code derived from disassembling
Windows. The code, according to the developer, was simply copied and pasted
from XP into some unspecified elements of ReactOS. After the claim was made,
the developer of ReactOS disabled access to the site, while an internal audit
was held to ascertain the truth behind the allegations.
However, as with most allegations, the
damage was quite significant, and ReactOS developed a bit of a bad name within
certain circles of the open source community, especially within Wine HQ, which
barred several of the ReactOS developers from providing contributions to the
site. Later that year, the doors to the ReactOS site were reopened, and the
project issued a statement citing ‘differing legal definitions of what
constitutes clean-room reverse engineering’, as the cause for the conflict.
Wounds within the community healed over and
much of the alleged copied code was eventually overwritten or replaced by
updated and more functional methods within time, but a lot of the audit was kept
behind closed doors and many of the details never made it to the public domain.
Still, it wasn’t the first OS developer to ever be accused of reverse
engineering, and we’re sure it certainly won’t be the last.