Tuesday 15 December 2009

ReactOS: Windows without Windows

ReactOS 0.4 logo: 'In a world without walls, who needs Windows?'ReactOS is a free, open-source replacement for the Windows XP operating system. Okay, the ReactOS guys will probably take issue with that statement and argue that as far as the latest codebase specifications are concerned, the target platform has now moved on, and is now W2k3/Win7 ... but for most prospective users, ReactOS is effectively an XP-substitute.

Lots of people liked XP, but since Microsoft no longer sell XP retail and the official MS mainstream support for XP ended back in early 2009, it's good to have an alternative. It's also good to have an alternative supplier to Microsoft – Windows 7 is supposed to be fine, but the gap between XP sales being cut off and Win7 appearing rather undermined Microsoft's image as a vendor who could be relied on for continuity of supply. MS temporarily cut off huge numbers of users who'd invested in XP and couldn't use Vista, because it wanted to prop up Vista sales. It's difficult to commit to a single operating system if the sole supplier is in the habit of pulling stunts like that.

ReactOS aims to become the Windows that Windows never quite managed to be (to steal the old IBM OS2 slogan, "A better Windows than Windows"). Written from scratch (to avoid legal issues) the developers haven't had to compromise their code to meet pesky release deadlines, so ReactOS is very, very fast and very, very small. It should run Windows software on a netbook faster than XP, using fewer resources. It's the mythical lean-and-mean "de-bloated Windows" that Windows users were asking for for years.

The downside of this perfectionist "no-deadlines" approach is that ReactOS is also very, very late.

The ReactOS 0.3.11 release was finally finished today (Twitterlink).
ROS 0.3.x is "pre-beta" software, which translates as "It runs, but not all software, and not on all hardware, and expect the occasional crash" Lots of programs are already supposed to run on ROS just fine, others may stall in certain situations when they try to call a Windows function whose ROS counterpart hasn't quite been implemented yet, or where a subsystem is still a work in progress. These problems should become less and less common as the ROS version numbers increase and the remaining holes in ReactOS get filled in. Issues that affect the more popular programs are being fixed first.

The final goal is 100% Windows compatibility, for everything. And that's not just for software but for hardware too. So if you have a scanner or printer that already comes with a Windows driver, that driver should (eventually) install "as-is" under ROS. That's worth repeating: no ReactOS-specific drivers are required. So you won't have the problem that Linux had, of having to wait around for a company to pay someone to write a special driver to get your niche hardware to run on a "non-Windows" OS. If there's already a Windows driver, it should (eventually) install under ReactOS, with no special steps needed.

Problems? Well, the lateness issue. The ReactOS project been going for a while now, and it only really started looking sensible this year. It would have been great if ROS could have been gotten to "retail-level" solidity before Win7 came out ... while people were still desperate for any version of Windows that wasn't Vista ... but that didn't happen. Windows has accumulated a LOT of different subsystems, from video to networking, all of whose features would need to be replicated in order for all programs to run under ROS in exactly the way they do under Windows.
Certain things have been deprioritised. ROS doesn't yet have a "fancy" desktop, and it can't write to an NTFS filesystem. But, like an amoeba collecting DNA from other organisms it eats, ReactOS is picking up tricks from other open-source projects – ROS is now sharing code with the WINE project (which lets you run Windows code in a bubble inside Linux), so further improvements to WINE help ROS, and vice versa.

Currently, one of the main issues for ROS is getting the thing to install on a disparate range of real-world PC hardware with its limited set of default bundled drivers. Once ROS is up and running you can start downloading and installing more specific Windows drivers, but if the included drivers aren't compatible with your hardware, you're stuck. Many ROS enthusiasts are running the OS in a "virtual machine" bubble under another operating system, so default support for real-world hardware hasn't been so much of a priority until recently.

Version 0.3.9 installed fine on my old (~2001) Sony laptop, but wouldn't install on an ASUS netbook, because the netbook had a serial ATA drive that the included ROS drivers didn't understand (to be fair, original-release XP doesn't install on the ASUS either, for the same reason).
At version 0.3.10, they tackled the SATA problem by bundling in a "universal" ATA driver from a different open-source project ... which turned out to have a few compatibility issues of its own, with the result that 0.3.10 refused to install on either of my test machines.
Version 0.3.11 is probably going to be the first version where the OS really starts to be functional to most people, with 0.4.x starting to develop and polish some of the user-interface components and secondary features.

If you can actually install ReactOS on your hardware, what sort of advantage is there to running programs under it instead of under XP? Well, you know how XP takes at least 45 minutes to an hour to install? Because of its small footprint, ReactOS 0.3.9 installed onto my blank laptop in five minutes flat. And by "five minutes" I really do mean five "stopwatch" minutes (as in "approximately three hundred seconds").

That's fast.

1 comment: