Guix System Distribution 0.15.0 and ReactOS 0.4.9A few readers have asked me this month to talk about some less commonly discussed open source operating systems. With that in mind, I decided to review the latest versions of Guix System Distribution (a Linux distro with an unusual package manager), and ReactOS (an open source project that tries to be binary compatible with Microsoft Windows).
* * * * *
Guix System Distribution (GuixSD) is a Linux-based operating system that is built around the GNU Guix package manager. The operating system provides advanced package management features such as transactional upgrades and roll-backs, reproducible build environments, unprivileged package management, and per-user profiles.
This description may seem familiar as GuixSD shares several features with NixOS, which is a platform built using the Nix package manager that offers the same feature set. GuixSD is developed by the GNU organization and strives to respect users' software freedoms. Naturally, it is one of the few Linux-based operating systems on the GNU project's list of completely free operating systems.
GuixSD is available in 32-bit and 64-bit builds. The compressed ISO file we download is 186MB in size and, when it has been expanded, it grows to 986MB. Booting from this media brings up a text console where we are automatically logged into the root account. A message on the console lets us know we can access local documentation by pressing ALT-F2. The welcome message also tells us GuixSD is still in development and concludes by stating: "Thanks for being so brave."
The documentation provided explains some limitations of GuixSD, such as not having non-free firmware for wi-fi devices. The documentation Includes networking instructions, a guide explaining how to partition the disk and set up file systems prior to attempting to install the distribution. These instructions are also on-line in the Guix manual.
To install GuixSD we first need to partition the hard drive, probably by using the cfdisk command line partition manager. We then format the root partition and mount it under the /mnt directory. We then run the command "herd start cow-store /mnt".
The next series of steps gets us to copy the standard configuration file to the /mnt/etc directory and edit the file to customize the system. This includes selecting the location of the boot device, changing our username, selecting which desktop environment to use and any necessary encryption mappings.
Once the configuration file has been adjusted to our satisfaction we then run the command "guix system init /mnt/etc/config.scm /mnt" to set up the operating system. Here is where I ran into a wall with GuixSD. I tried five different attempts at setting up the template file to match my settings (plus one attempt where I just accepted all the defaults to see what would happen) and the process failed each time. Typically the guix command would exit with a cryptic message indicating a syntax error in the file. Unfortunately the errors were not helpful and I found no relevant trouble-shooting steps in the documentation.
I was a bit disappointed with running into this barrier. I've installed NixOS a few times and like the idea of a central configuration file that can manage users, services and installed packages. The concept is one that appeals as it makes it easy to for an administrator to re-create the same operating system procedurally across multiple machines. I am sorry to say I did not have the same success setting up GuixSD as I have had with installing NixOS in the past.
* * * * *
ReactOS 0.4.9It has been about two years since I last reviewedReactOS. Since then, the ReactOS team has been putting work into making their operating system self hosting (it is possible to develop and build ReactOS on ReactOS). Windows application support has gradually improved and the latest version of the operating system supports opening Zip files as folders, the way Windows XP and later versions of Microsoft's platform do.
ReactOS is available in two editions: a Live edition for testing the operating system and its compatibility with our hardware, and an installation disc. Both editions are compressed with the Live edition starting at 74MB and expanding to 235MB, and the install disc is a 104MB download which expands to 124MB.
I got off to a rocky start as the Live edition would not boot in VirtualBox, with or without debug options enabled. I also could not get the Live edition to boot on my laptop. A boot screen would appear and ask me to press a key to boot from the ReactOS media, but pressing a key produced an error indicating no boot media could be found. It is an odd error since the prompt itself was coming from the boot media.
I then changed gears and tried the install disc in VirtualBox. The installer should look familiar to people who have installed earlier versions of Windows, such as versions 2000 and XP. We are shown a blue text screen with a series of simple menus. The installer asks us to select our language and screen resolution from lists. We are then guided through partitioning our hard drive. The partitioning options are fairly limited as ReactOS only wants one partition and it should be formatted with the FAT file system. We are then asked if we would like to install a boot loader. The whole setup process only took me about two minutes.
ReactOS 0.4.9 -- Application menu and settings (full image size: 144kB, resolution: 1280x1024 pixels)
The first time we boot into the new copy of ReactOS a graphical wizard appears and asks for our location information. We are also asked to provide a password for the administrator account and select our time zone from a drop-down list. We can choose between two themes, one which resembles Windows 2000 and the other which has a similar style but with darker elements. We can then optionally join a Windows domain.
There is, by default, no login page. When the operating system boots we are brought straight to the desktop and given the ability to perform administrator tasks. The desktop closely resembles that of Windows 2000 or 98, with a similar file manager, application menu, control panel and driver management. The faithfulness of the recreation is impressive.
The desktop was generally responsive, though the interface tended to lock up temporarily whenever the disk was being heavily accessed. My main issue though was not waiting for disk input, but dealing with instability. When running in VirtualBox, ReactOS tended to crash whenever I was running more than two or three programs at a time. Sometimes this manifested in the desktop no longer responding to mouse or keyboard input and, in one case, ReactOS showed me the familiar blue screen of death.
A problem I ran into early on was ReactOS could not work with my virtual machine's network card. Searching through the project's documentation I found instructions for setting up an adaptor the operating system would work with. I switched out the network interface and rebooted, but ReactOS still did not recognize the virtual card. Since installing ReactOS takes just a few minutes and trouble-shooting would take longer, I simply re-installed the system with the new network card and it was properly detected after the fresh install was finished.
One of the key highlights of ReactOS, in my opinion, is its package manager. The system ships with a third-party application manager which can be accessed from a desktop icon. Programs are divided into categories we can browse through and we can check boxes to queue programs for installation. The package manager worked well and provided me with quick and easy access to a range of popular open source programs and drivers, including LibreOffice, Firefox, VLC, Notepad++ and a handful of games. A software centre that can run batch jobs to install multiple items at once is something I feel was notably missing from older versions of Windows and I really like that ReactOS makes downloading third-party software so straight forward.
A big question people have when it comes to using ReactOS is whether the operating system really can deliver on the idea of running Windows applications. During my brief trial I found that it could. Each of the programs I tried ran and I typically found performance was better under ReactOS than I have experienced with recent versions of Microsoft's product.
While both of the projects I experimented with this week are driven by very interesting concepts (GuixSD offers a purely free system with advanced package management and ReactOS attempts to be an open source replacement for Windows) there are limiting aspects to both projects which would keep me from running them on a regular basis.
GuixSD has a package manager that I like. I've used related technology through NixOS in the past and loved how easy it was to rollback problems, manage accounts and skip forward or backward instantly through installed package versions. Where I feel GuixSD let me down was in its limited hardware support (there are no non-free drivers or firmware) and its limited documentation. There are instructions for using GuixSD when all is going well, but nothing I felt was helpful when the package manager was not operating the way I expected.
ReactOS, while a completely different operating system with its own kernel, installer and programs, ultimately had a similar problem: limited hardware support. The operating system's Live edition did not work in either of my environments and I had to work around having a limited set of drivers. Another issue with ReactOS was the stability. The system tended to lock up if more than a few programs were running, or if I tried to cancel an intensive task like installing a new application.
Both of these projects present interesting ideas, however both are still (as their documentation pages point out) in an unstable stage of development. They should be used with caution and probably not as a main, day-to-day operating system.
* * * * *
Hardware used in this review
My physical test equipment for this review was a de-branded HP laptop with the followingspecifications:
Processor: Intel i3 2.5GHz CPU
Display: Intel integrated video
Storage: Western Digital 700GB hard drive
Memory: 6GB of RAM
Wired network device: Realtek RTL8101E/RTL8102E PCI Express Fast