Freedom, Community & Sustainability

The story of the Hurd kernel

November 1, 2011 -- William
Last modified on May 2018

I find the story of the Hurd really interesting because it goes much beyond the discussions about the kernel, GNU, Free Software, Linux and computers in general. It involves people, relationships, strategies, decisions, work, commitment, random events and many other things that make life so exciting. It is important to see the mistakes of this project to try to avoid them and it's much easier to spot them now that we know the outcome. I believe that the GNU people did the best they could under the circumstances but, of course, they couldn't predict the future.


In short:


Since the creation of the GNU project in 1983, a lot of effort has been put into developing, one by one, all software needed to run a free operating system. The development of the GNU Hurd started in 1990 as a Free Software replacement of the UNIX kernel. In 1991 though, a kernel called Linux entered the scene and all GNU software was adapted to run on GNU/Linux operating systems, often called just “Linux” for short. The development of the Hurd was continued and it eventually became usable in 2001 although it is not considered stable enough until now.


First things first


A kernel is the most important software in an operating system. Sometimes people make no distinction between kernel and OS simply because the term “operating system” is vague and may or may not include other software than the kernel.
Although the GNU project was (and still is) the greatest Free Software initiative, they unfortunately did not manage to make this, one, essential software to build an entirely free operating system. If we compare the amount of work put into the GNU project and the amount of work put into Linux we realize that Linux is just a small percentage of the total code. Apparently the GNU project did a wonderful coding job but made poor decisions about putting first things first, establishing priorities and being efficient. Once again the “80-20 rule” applies and it seems that 80% of the work  did only 20% of the job.


The right thing to do vs. the best thing to do


Actually, the GNU developers did not ignore the importance of a kernel. In fact, they made a first attempt in 1986, just a couple of years after the announcement of the GNU project. The early plan was to adapt the 4.4BSD-Lite kernel and according to Thomas Bushnell, this would have worked well. In fact, the 4.4BSD-Lite was successfully used to build Darwin, the core upon which Mac OS and iOS are built. The first real kernel used was TRIX but it needed too much fixing in order to work and it was abandoned. At some point there was a doubt if Berkley Sprite could be used but it didn't work either due to a lack of collaboration from Berkley programmers. Finally, they decided to use another architecture from the March microkernel. Once this decision was taken they still had to wait several years because it was uncertain that the march code would be released under a Free Software licence.


When more is less


The decision to switch to a microkernel was seen as a technological improvement. The idea was not just to build a free Unix-like kernel but to do much better than that. As the acronym said, GNU's Not Unix! The choice was made towards a more reliable and performing technology, had they been able to achieve it. The problem was that some unforeseen complications made the development of this kernel a very difficult task. The long and the short of it is that the architecture of the Hurd was a far too ambitious project to be achieved. Just for the sake of comparison, it took roughly 7 months for Linus Torvalds to build the very first version of Linux based on MINIX while the Hurd is still not stable enough to be released, more than twenty years later.


Hope can be worse than hopelessness


The GNU Hurd project is still under active development and there is hope that one day an awesome kernel will come out of it. The reason to continue developing it is simply because the project started and there is a lot of work that has been done already. There are signs of fatigue here and there that might let us think that the Hurd will never reach maturity. There is no urgency either to finish the project since a free kernel is already available but what if the Hurd was really much better? Only time will tell if hope was better than hopelessness!


Read more:
GNU HURD Website
Tanenbaum-Torvalds debate about kernel architecture (Wikipedia)
Linux naming controversy (Wikipedia)

Add new comment