If you wish Windows was open source, you should look into ReactOS!
Microsoft has made many strides towards being more open. This trend ranges from participation in industry groups to interoperability of its files and applications. Heck, it’s even released many of its own tools and applications as open source.
But one area where it’s yet to budge is the Windows operating system (OS). As the combination of Windows and Office provide a large portion of Microsoft’s yearly revenue, it may be a while until we can download the OS code for ourselves. As a result, some intrepid community members have taken it upon themselves to try to build their own Windows from the ground up.
In this article, we’ll take a look at what ReactOS is, how to install it, and how it handles some existing Windows applications.
What Is ReactOS, Anyway?
ReactOS is an attempt to build an open-source operating system that mimics Windows. This doesn’t just mean looking like Windows, although it does (well, older versions in any case). But it goes deeper than that.
The main goal of the project is to build an operating system that will run any Windows application you throw at it.
This is an immense undertaking. At a very high level, an operating system is made up of the following components:
- A kernel, which translates between software and hardware.
- Basic software libraries that provide common functions like writing a file to disk.
- Services that run in the background. The Print Spooler is an example of this, as it waits for other programs to send something to the printer and manages that exchange.
- Applications that use these components. This includes not only user-facing apps like Word or Chrome, but also system applications. For example, explorer.exe is a program that not only browses files (user-facing), but also provides the desktop, Taskbar, and Start Menu.
The job before the ReactOS project is to provide a set of libraries, services, and (system) applications that are compatible with the ones Microsoft has. In addition, these software components will normally make system calls directly to the kernel on behalf of user-facing programs. So ReactOS also needs to intercept these, process them, and reply, all while the app is none the wiser.
Hopefully, you have an idea of the scope of what the ReactOS developers are trying to do. And that’s why, based on the current state of the project, there are some things that work and some that don’t. In the below sections we’ll walk through the installation process in a virtual machine. Then we’ll install three applications to see how they perform: one basic, one intermediate, and one complex.
How to Install ReactOS
The installation of ReactOS is very (very) similar to Windows. If you’ve ever installed Windows from scratch, such as on a PC you built yourself, you’ll be right at home. The initial stages are in “screen of death” blue, while the finishing touches use familiar-looking (if dated) dialogs.
If you’d like to follow along, start off by installing VirtualBox for your OS. Then create a virtual machine with the settings as shown in the below picture. Most of these are default settings, with the exception of the RAM (1GB) and hard disk space (10GB), which although low should be plenty for this lean system. If all this sounds like gibberish to you, take a look at our guide to VirtualBox to see what it’s all about.
Step 1: Installer Language
The first screen will ask you to select the language to use during the install process. Here you can see the lovely blue screens common to Windows installations. On this and the screens to follow, you can navigate with the arrow keys, use Enter to make a selection, and perform other actions with keys listed in the bottom bar.
Steps 2-3: Welcome and Warning
Here’s a nice message welcoming you to ReactOS, as well as a note that it’s still under development.
Steps 4-5: Devices and Storage
You’re safe to accept the default values for the devices, they’re all standard components that VirtualBox emulates.
On the next screen, the virtual disk you created for your VM should appear. You can tell if the size of the “C: drive” matches what you’d told VirtualBox to allocate for this VM. Unless you need a fancy partition scheme, you can just hit Enter here.
Step 6: Confirmation
On this final screen, select the middle option. It will completely format your disk, which you’ll want whether the VM is brand-spanking new, or you’re recycling an old virtual disk file.
Hit Enter on the next screen again to confirm.
Step 7: Formatting
Depending on the size of your virtual disk, the formatting process may take some time.
Step 8: Install OS
Next, the installer will copy the OS files to your virtual disk.
Step 9: Install Bootloader
Lastly, the installer will set up the VM’s bootloader to run ReactOS when you start it. Choose the first option here, which will install it to both the virtual disk as a whole as well as the C: partition specifically. A final screen will inform you that you’ll reboot your machine. Say goodbye to that awesome electric blue.
How to Set Up ReactOS
You should now boot into the ReactOS itself. If you’re a user of a certain age, the styling you see should look familiar. Now a wizard will appear to help you set up some aspects of the system:
- A welcome screen.
- Acknowledgements, particularly to the open source project that ReactOS contains.
- Language Settings, including for the system (date/time, currency, and other formats) and for the keyboard (e.g. U.S. layout), shown in the above image.
- An option to add your name, and your company’s name.
- A name for your machine, and the password for the administrator account.
- Setting the date, time, and time zone.
- Selecting a theme. ReactOS contains two out of the box: Lautus, a dark theme, and Classic (which looks just like you’d expect), shown in the below image.
- Network settings.
- Indicating whether the ReactOS machine will be part of an (ad-hoc) workgroup or a company domain.
- A final progress screen while the OS works in the background.
Once all this is complete, your desktop will be ready for use. If you’re a regular Windows user, everything here should be very familiar. The “Start” menu, taskbar, system tray, and desktop icons all look exactly like Redmond’s OS. It all looks the same, but how well does it work?
Installing Windows Programs in ReactOS
We’ll be selecting three applications for use in this experiment, as follows:
- Text editor. It’s one of the most basic computer tools there is, and ReactOS does have its own clones of both Notepad and Wordpad, just like Windows. Nevertheless, we’ll try to install PSPad, an open source text editor.
- Music player. QMMP is cross-platform and looks like WinAmp, so it seems like a fine choice. But multimedia applications need to interact with various OS internals, so it represents something a little more complicated than a text editor.
- Web browser. We’re looking for something complex here, why not go for it? Let’s try to install the latest Chrome.
Note: While the initial instructions listed 1GB of RAM to the ReactOS virtual machine, based on the selection of Chrome, I upped this to 2GB before doing the installations.
The following sections will detail how successful (or not) the install and execution of these programs were.
Installing and Running PSPad
After downloading an installer from the project’s website, a simple double-click kicked things off.
The install completed without issue, and the installer launched the application. Some rudimentary testing (entering text and saving the file) went off without a hitch. One glitch I did notice was that the Minimize button on the title bar didn’t work. Maximize did work, toggling it back and forth between the size shown in the below image and full-size. But Minimize didn’t, while it did work on other windows such as the file manager.
Overall it appears at first blush to be largely functional. So as our representative of a “basic” application, PSPad passes the test.
Note: ReactOS has an Application Manager, which more resembles the various package managers of the open source world than Windows’ “Programs and Features.” This is a sort of software repository from which users can select and install applications for ReactOS, much like the Windows Store. A pleasant surprise was that PSPad showed up as installed in this tool, even though we installed it manually. What’s more, the Application Manager has a (slightly older) version of PSPad for installation. It also installed correctly and even picked up the session I’d opened in the newer version.
Installing and Running QMMP
QMMP is also available for download from its website; just scroll down to the bottom of the Downloads page and look for the link for “Binary packages for Windows.” Pick up the installer for the most recent version, and double-click to run.
Things went downhill though once the application started up. It allowed me to start the application and add a song to the playlist, but it wouldn’t play. At this point, I noticed that the sound driver wasn’t set up properly for the VM, but even after doing so and confirming it, the app wouldn’t play an MP3 file. In fact, ReactOS began freezing when I tried to uninstall QMMP to re-install it. A fresh install of ReactOS, where I made sure to install the audio driver first, didn’t even solve the issue.
For this “moderate” application, we can evaluate it as not passing. Although it did install and start up, it didn’t actually perform its core function.
Note: Like PSPad, QMMP is also available from the ReactOS Application Manager. Installing this (again, older) version did work, as shown in the above image.
Installing and Running Chrome
Now for the coup de grace: the Chrome web browser. If you can get this installed and running on your machine, you suddenly have a wide variety of tools at your disposal. This ranges from desktop email to audio players (check out our guide to Spotify) to productivity tools (Google Docs or Office Online). But its ability to run all this great web-based software means it’s a complex beast under the hood. Can ReactOS handle it?
Unfortunately, no. At least running the standard ChromeSetup.exe file was unsuccessful. The installer wasn’t even able to connect to the internet to download the browser itself, which doesn’t bode well for Chrome’s ability to surf the web on ReactOS.
Note: Although Chrome isn’t an option, at least not without applying some elbow grease to get it installed, Firefox is! It’s available from the Application Manager and runs well. Though the version was a bit older (v.45.0.1), it didn’t have any trouble opening the draft of this article in Google Docs after I’d logged into Gmail, as shown in the below image.
Should You Use ReactOS?
It depends. If you’re already a Windows user? No, not for any reason, unless it’s just curiosity. If you’re a Mac or Linux user? It might be useful to run the odd Windows application you need by running it in VirtualBox. Basically, if you’re in a situation where Wine won’t run something you want, and you don’t want to pony up for a Windows license. Just keep in mind its in-progress state and don’t make any big bets (e.g. don’t rely on it for any mission-critical programs without extensive testing).
That said, if you have some older hardware that doesn’t have an OS, and you need one, ReactOS might be a viable option. You should plan on sticking to what’s available from the Application Manager, which is not as bad as it sounds. While some of the manually-installed apps didn’t work out, ReactOS went “three for three” with Application Center installs.
In addition to the above utilities and Firefox, there are some heavy-hitting applications available. Like LibreOffice. GIMP, Inkscape, and Scribus for graphics/publishing. GnuCash for finances. VLC for video. There’s even a demo version of Diablo II. Not too shabby for a group of community developers taking on Microsoft.
All told, you’d probably be better off with a Linux distribution in terms of software updates and general capability. But if you’ve got an older machine and a user that just can’t grok another operating system? In that case, even in its current alpha state, ReactOS is definitely worth a look.
Do you think ReactOS a worthwhile endeavor? Wouldn’t a completely free and open-source Windows-compatible OS be awesome? Let us know in below in the comments if you have any opinions!