Should we limit the terms of free software operating systems to GNU/Linux, GNU/Hurd, xBSD, OpenSolaris and the likes?

Should we limit the terms of free software operating systems to GNU/Linux, GNU/Hurd, xBSD, OpenSolaris and the likes?


These days, when one talks about free software, the first word that comes to mind is Linux—be it the kernel or a distribution based on it (which would then be a GNU/Linux operating system, and its flavour marked by a brand name: Red Hat, SuSE, Mandriva, Debian, Ubuntu, Slackware...)

At one time, there was another project worthy of note: BeOS. It wasn’t POSIX-compatible, but it was neat. But now, only free *NIX prevail... really?

Enter ReactOS.

Another viable free software operating system—help wanted

ReactOS overview

ReactOS is an old project. It actually started around 1996, but started producing code only recently. It aims at implementing all of win32 according to specs, be it hardware or software.

Yes folks, it means that ReactOS would basically run all of Microsoft Windows’ drivers and applications natively.

Right now, the project is about to get out of a long phase of code review—due to some alleged unclean code—and is pushing out the first release candidate for a version 0.3.0.

But what can you do with it right now?

OpenOffice.org runs on it—so does Firefox, Thunderbird, you can do IRC, anonymous FTP, USB Plug’n’Play works, DirectX is about to be implemented (direct port from Wine), OpenGL is being reworked... No sound yet.

I tried older versions of it, and only my lack of free time (overwork,ed buying an apartment, rebuilding my car’s engine from the ground up...) made me delay trying the latest version. But, from what I could see before, the screen caps, the release notes, the logs, the fora... It’s getting very impressive.

Specifics

For a more complete history, have a look at ReactOS’s history page. Suffice to say, ReactOS started as FreeWin95, got lost in discussions, resurrected in 1997 thanks to Jason Filby, then targeted Windows NT4’s kernel, slowly developed a working kernel, then a GUI, then a few tools... And in the last year or so, imported 80% of Wine’s code, upgraded its kernel to target Windows 2003 SP1’s, underwent a full code audit—which led to major bugfixing, and now has a lot of stuff to show off as well as major additions about to be added—Trunk contains a lot of stuff not included in builds yet, but testers and programmers are required...

ReactOS has a direct relationship with Wine—in fact, both projects share a lot of programmers (we are, after all, talking about reimplementing the win32 API) and most of Wine’s user-space code and applications.

Why reimplement win32? We can already do whatever we want under GNU/Linux, xBSD, etc!

GNU/Linux is a voluntary, free replacement of a complete proprietary system called UNIX, which was well known for its stability and versatility. On the other hand, win32 systems are known for their bad security, high prices and resources hogging...

What most people don’t know is that a win32 system isn’t inherently unstable or insecure: it has separated system and user spaces, strong memory management, access rights management, a complete hardware abstraction layer... More recent versions even have a modular design.

It’s just that the only implementations available now put most of that to waste, with users having unrestricted rights, no passwords set for active services—which are enabled by default, and a few critical mistakes made here and there, buried under a lot of sugary interfaces, and suspicious code for a bunch of “extras”—like an integrated web browser or media player.

Since this “good” system is being wasted, why not program a completely compatible one that anybody can set up and/or correct as wanted? After all, that’s what took place with BSD and GNU!

Remember what started Wine: the desire to run existing win32 applications under a free operating system. However, due to very different designs, complete compatibility between Wine and win32 will be almost impossible to reach, not at a useable level anyway. This is also a place where a complete (and free) reimplementation of win32 is interesting: run your legacy applications in a fully compatible, but also fully customisable operating system, freely.

Conclusions

UNIX got its GNU, Windows can have its ReactOS. What do we get? Free operating systems to make our computer hardware run freely, and our applications too.

Bibliography

The ReactOS website—browse it, it contains a lot of interesting stuff!

Category: 

Comments

Ryan Cartwright's picture

Whilst I agree that Free Software should not be restricted to a single subset of Operating Systems I would have thought that ReactOS will probably struggle to ever be free.

What I mean is that GNU/Linux, BSD et al are POSIX based and thus share a common root with Unix - rather than being based upon it. ReactOS is an attempt to implement Win32 under a free software licence. By definition this means that the features of ReactOS are dependant upon decisions made by Microsoft and nobody else. Thus ReactOS, although under a free licence, brings with it all the hassles of a non-free environment: proprietary drivers etc.

So if the people behind Unix decide to make fundemental changes it - the free software alternatives are free to ignore those changes if they want to. ReactOS is restricting itself to adopting decisions made by Microsoft.

Okay it also has the advantages of free software - it can make Win32 available to a wider range of architecture - but by trying to re-implement Windows XP (i.e. the latest available version) are they not tying themselves down a little?

Perhaps it would be better - and would have a wider audience - if they reimplemented the Windows9x range - especially as Microsoft have finally stopped supporting it.

Terry Hancock's picture

My understanding is that, in common with Wine, ReactOS will be able to effectively run as several different "versions" of Windows (or that even if this is not currently true it is likely to become so because of the design).

That means that it can run Windows "9x" software.

The current Windows may be a moving target, but it's fair to point out that it's really the existing base of software, written for fixed versions of Windows that is of interest.

OTOH, one problem is that the software being preserved is almost without exception non-free software. Anything for which we have source code and a free license is subject to being ported to GNU/Linux in the usual way (easier than writing a whole new O/S!).

Linux was a crowning achievement in the free software world, because it eliminated the one remaining barrier to having a 100% free software environment on your computer. ReactOS isn't leaning that way, because even though it's shooting for a free kernel, O/S, and GUI, you're still doing it in the service of proprietary applications.

So, IMHO, it will always be a niche application. OTOH, it's a pretty big niche, because there are a lot of users out there with legacy Windows apps that they don't want to lose access to. I myself have a collection of games in a drawer somewhere that I'm going to try out with Wine when I get some time to mess with it.

OTOH, there is also the remote possibility that ReactOS and the Win32 architecture will display some technical advantages. If so, then it becomes a potential rival free O/S in its own right. I don't think ReactOS is likely to be it, but surely some new, innovative O/S will come along to challenge the Linux/Unix supremacy in free operating systems.

After all, the central insight behind this magazine is that it isn't really about "Linux", it's about "Free Software". On mere technical merits Linux is a solid O/S, but it's not earthshattering -- it's the fact that it's GPL'd that matters.

Ryan Cartwright's picture

My understanding is that, in common with Wine, ReactOS will be able to effectively run as several different "versions" of Windows (or that even if this is not currently true it is likely to become so because of the design).

I hope you are right - that would be better. My concerns were from statements like this one from the ReactOS website..

"ReactOS aims to achieve complete binary compatibility with both applications and device drivers meant for NT and XP operating systems, by using a similar architecture and providing a complete and equivalent public interface."

Linux was a crowning achievement in the free software world, because it eliminated the one remaining barrier to having a 100% free software environment on your computer. ReactOS isn't leaning that way, because even though it's shooting for a free kernel, O/S, and GUI, you're still doing it in the service of proprietary applications.

This is effectivley what I was trying to say - only it's been put better :o)

I'll agree that ReactOS will have purposes - possibly for cross platform developers who want to test something on a Win32 API.

Patrick's picture
Submitted by Patrick on

shouldn't we be making things better for the computing world if we make things easier for people to stay with the faulty code micro has bought will people ever care that there is better software? I do't think so.

Terry Hancock's picture

All I got for sure was that you don't like Windows, but you seem to be suggesting that ReactOS is a bad idea because it will encourage people to stick to Windows.

ReactOS would be related to Windows in the same way GNU/Linux is to SCO Unix (or Solaris or AIX). It's still a free O/S, and the nature of bazaars is that bugs are more likely to get fixed. There's probably no fundamental reason why ReactOS couldn't be a great operating system in its own right. Users using ReactOS, likewise, would not be "continuing to use Windows".

There are, of course, three things it has to overcome:

First, it's chasing tail lights. As long as Windows is the standard, it's playing catch-up.

Second, Windows doesn't have a solidly thought out technical design when it comes to things like security and multiple users. That's because the original O/S was just not meant to do those things and so they were added as an afterthought. ReactOS can't veer too far away from that design if it wants to retain 100% compatibility (and if you don't, why not just run Wine on Linux?).

Third, it's very niche. Most Windows users are going to keep using Windows, no matter how perfect ReactOS is, and most free software advocates are going to stick to GNU/Linux (most of the rest will be on one of the BSDs). ReactOS, like FreeDOS, has a fairly small userbase.

That's going to be true unless and until they do something really innovative, but the truth is, that's much more likely to happen with Linux. So it's a bit of a long shot.

OTOH, I hope they succeed. The fact that all of the free O/Ss in the world are POSIX type, is not good in the long run. There needs to be some technical competition. ReactOS is a perfect opportunity for those folks who believe Windows to be technically superior to try out their ideas. After all, ReactOS can compete on an even footing with Linux in a way that Windows can't, being non-free.

Mitch Meyran's picture

...they're certainly valid, and some worthy differences have to be pointed out:

1- playing catch-up: sure, but since Microsoft isn't adding much to its subsequent revisions of win32 (they may even trim them down a bit in Vista, at least I read something about that), the target may not be so hard to reach - provided ReactOS limits itself to being a base OS (does it need to reimplement all of Windows Media Player for example? Or .Net (which does have Mono anyway) ? Or all the Wizards? Not necessarily - and Microsoft can't veer too far away from win32 for compatibility reasons.

2- Windows' technical design isn't bad /per se/ - it's just buried under useless additional software that abuse it. Trim a Windows machine to the bone and set up correct user and hardware rights, and it gets very interesting. Now, one of ReactOS' developers' goal is to correct - as much as compatibility allows - those remaining flaws. Remember that Linux, with its monolithic model, isn't the best designed kernel either.

3- It's niche, like GNU/Linux used to be (and still is in some markets). However, if you tell an OEM: 'you can either keep paying the Microsoft tax or install a free, _100%_ compatible OS legally on your cheap machines without licensing hassles' there might be a bit of interest. Of course, due to MS pressure and inertia, it may be a long time in the making - but imagine creating an OS that could run all games, all home productivity and entertainment software, and most professional applications and networks (meaning a WinXP home clone with flexibility added and hardware locks removed), it may score a few hits. It would also be successful on refurbished machines only capable to run no longer supported OSes.

One interesting problem though, is that RMS defined the UNIX standard with his POSIX specifications - Minix, GNU/Linux and xBSD followed them. Win32 is still defined by Microsoft (while still open and submitted to ECMA, if my memory serves me well).
---
A computer is like air conditioning: it becomes useless when you open windows.

Mitch Meyran's picture

...but which is kept in mind by ReactOS developers: since their OS is free (as in speech), they can actually improve or add whatever they feel is missing from the proprietary version - for example, a strict system/administrator/user rights separation, as is done in the *NIX world, or a more efficient DOSbox (:p)
UNIX lost against GNU/Linux because not only was the free OS free (as in beer), it was also very stable (more stable than some proprietary UNIXes) and more customisable, while at the same time not changing usage and programming habits much.
Would computer users disgusted by Microsoft's OS products due to their high prices, lack of individual consumer support, or bad architectural choices be equally unhappy with a system that would run the software they choose to get (be it free or proprietary) in the way they want it to?
Right now, the best kernel Microsoft has produced is that of Windows 2003 SP1; it has been reused in WinXP 64-bit and in Vista - and it is, actually, a VERY good kernel. Glue a user interface more similar to KDE than to GDI on top of it and provide enough APIs and tools to have fun with the system, and you get for Windows what GNU/Linux was to Unix: a better, free replacement.
---
A computer is like air conditioning: it becomes useless when you open windows.

Author information

Mitch Meyran's picture

Biography

Have you ever fixed a computer with a hammer, glue and a soldering iron? Why not? It's fun!