Nearly twenty years later the HURD has still to reach maturity, and has never achieved production quality. The HURD is no longer tied to the use of the CMU Mach microkernel, which "people thought was the cleanest possible way to design kernels back in 1990". Stallman acknowledges that "it took many many many years to get this kernel to run at all, and it still doesn't run well, and it looks like there may be fundamental problems with this design, which nobody knew about back in 1990".
The HURD has gone through many changes, and has been ported to different microkernels on more than one occasion, led variously by Marcus Brinkmann and Neal Walfield, who have been the primary developers over the past decade or more. As the HURD has never achieved first base as a production operating system, and the urgency behind kernel development was supplanted by the success of Linux, development seems to have turned a succession of theoretical corners designed to refine the original approach in a long and persistent search for the perfect design which puts ultimate control in the hands of the user.
The HURD was reportedly up and running Emacs in 1994, and was said to be ready to hit the streets in 2001, but has still to make a meaningful appearance in the real world. By 2002 the code was being moved from the Mach microkernel to the L4 microkernel, to simplify the interaction between the HURD (the daemons) and the microkernel. In the words of Walfield, "while the L4 microkernel tries to minimise the policy that the kernel enforces on the software running on it, the HURD tries to minimise the policy that the operating system enforces on its users". The HURD is a vehicle for the ideals of the free software movement.
In January 2005, Brinkmann announced that the L4 microkernel had been made bootable and "we can now easily explore and develop the system in any way we want. The dinner is prepared!", although he later qualified this by pointing out "With my glibc port, I can already build simple applications, but most won't run because they need a filesystem or other gimmicks (like, uhm, fork and exec), and I only have stubs (dummy functions which always return an error) for that now".
The dinner was prepared, but the meal has yet to appear. By 2006, there was on ongoing project to port the HURD from L4 to Coyotos, which was considered more secure, and more recently Walfield has worked on moving the HURD to the viengoos microkernel. The HURD has never had the community and resources that amassed around Linux, and looking in from the outside, sometimes looks more like a focus for research into OS design than it does a working kernel.
The GNU project's biggest error may have been its choice of the Mach microkernel, of which Stallman says: "I take full responsibility for the technical decision to develop the GNU kernel based on Mach, a decision which seems to have been responsible for the slowness of the development. I thought using Mach would speed the work by saving us a large part of the job, but I was wrong".
The Mach microkernel imposed problems on the HURD developers that have been difficult to surmount, and despite the criticisms of Tanenbaum and others, the choice of a monolithic kernel for Linux made it easier to fulfill the first imperative of all free software developers, which was a working free operating system.
An ironic way of failing
Source: FSF - GPL - http://bit.ly/b0O3TV There have been various attempts to recruit developers to the cause of the HURD. Debian has supported a Debian GNU/HURD branch since 1998, and has ported GNU/Linux software to the GNU kernel, but has yet to make a full release although CDs are available. There is an Arch HURD project which offers Live CDs of the HURD, and there has also been a project to port Gentoo software onto the HURD, but work on Gentoo GNU/HURD appears to have stalled several years ago.
In Stallman's view the objective of free software does not begin or end with GNU/HURD, GNU/Linux or any other operating system, language or application that has been, or may be, developed on the open model that the GPL facilitates. "I want to use a computer in freedom," he said in 1999, "to cooperate, to not be restricted or prohibited from sharing. The GNU/Linux system is catching on somewhat more now. The system is becoming popular for practical reasons. It's a good system. The danger is people will like it because it's practical and it will become popular without anyone having the vaguest idea of the ideals behind it, which would be an ironic way of failing".
Some of us are still wishing and hoping for the real deal, a GNU operating system with a GNU kernel. The choice of the Mach microkernel, which seemed so wise in 1987/90, may have proved to be the wrong choice (although NeXT and Apple made it work for OSX). But without the initial drive to get there, and the development of the GNU tools and the GPL, Linux might never have become what it has become, and the lessons learnt from the HURD's journey through the backwaters of operating system design may yet prove to be the base for what follows after.
For other feature articles by Richard Hillesley, please see the archive.