User: Password:
|
|
Subscribe / Log in / New account

Distributions

The Hurd: GNU's quest for the perfect kernel

July 7, 2010

This article was contributed by Koen Vervloesem

When Richard Stallman founded the GNU project in 1983, he started building a completely free Unix-like operating system bit by bit. Over the years, the GNU system got a compiler (GCC), a C library (glibc), a build system (make), a shell (Bash), an editor (Emacs), and so on. However, it wasn't until May 1991 that the project announced they would start working on a kernel, the last missing piece of their free operating system: the Hurd (note the article in the name, and that "Hurd" is the phonetic equivalent for the English word herd).

By then, Linus Torvalds had already started working on his Linux kernel, which he would announce in August of that year. In his now famous debate with Andrew Tanenbaum on the newsgroup comp.os.minix, he wrote (in January 1992):

If the GNU kernel had been ready last spring, I'd not have bothered to even start my project: the fact is that it wasn't and still isn't. Linux wins heavily on points of being available now.

Ted Ts'o, one of the earliest Linux developers, made a similar remark:

I am aware of the benefits of a micro kernel approach. However, the fact remains that Linux is here, and GNU isn't --- and people have been working on Hurd for a lot longer than Linus has been working on Linux.

So, with all due respect to the project's mission and philosophy, we should be happy that the Hurd wasn't ready in 1991, because in 2010 it still isn't (at least for production use). Reading the history of the Hurd (for example in the article that The H published in late June), a comparison to the everlasting development of the video game Duke Nukem Forever is not completely far-fetched. A release has been promised several times, but the development schedule has been postponed even more and the architecture has been completely redone several times.

No vaporware

So what is the state of the Hurd? Is it vaporware, like Duke Nukem Forever? Fortunately not: the code exists, there is still work going on (for instance as part of Google Summer of Code), and there are even some relatively functional Hurd distributions. Let's look first at the code and the current architecture, and then at the Hurd distributions.

The current architecture of the Hurd is a set of "servers" running on top of the GNU Mach microkernel. These servers implement file systems, network protocols, authentication, processes, terminals, and other features that traditional monolithic kernels implement in the kernel itself. The Hurd servers implement clear protocols that formalize how the different components of the Hurd kernel interact, which is designed to reduce mutual trust between components. To transfer information to each other, the servers use Mach's interprocess communication (IPC) system. Collectively, these loosely coupled servers implement the POSIX API, with each individual server implementing its part of the specification.

Both the logo and the name of the Hurd project reflect this architecture. The logo is called the Hurd boxes, and it shows some boxes (the Hurd kernel's servers) connected by arrows (Mach's IPC messages). The name is, in hacker culture tradition, a recursive acronym. Thomas (then Michael) Bushnell, the primary architect of the Hurd, explained the meaning like this:

It's time [to] explain the meaning of "Hurd". "Hurd" stands for "Hird of Unix-Replacing Daemons". And, then, "Hird" stands for "Hurd of Interfaces Representing Depth". We have here, to my knowledge, the first software to be named by a pair of mutually recursive acronyms.

For readers that want a technical overview of the Hurd's architecture and some critiques on the decisions made, your author points to the paper A Critique of the GNU Hurd Multi-server Operating System [PDF] by Neal Walfield and Marcus Brinkmann, published in ACM SIGOPS Operating Systems Review in July 2007. The two have also written a forward-looking proposal for how a future GNU Hurd might be architected: Improving Usability via Access Decomposition and Policy Refinement.

To fix some of these shortcomings of the Hurd while preserving the main design goals, there's already a Hurd-ng project in the works, although it is mostly research oriented. For a time there was an effort, led by Walfield and Brinkmann, to port the Hurd from Mach to the L4 microkernel family, but it never reached a releasable state. The two also considered the Coyotos microkernel, but eventually Walfield moved on to working on a new microkernel Viengoos, about which he published two academic papers.

Hurd distributions

Over the years, a couple of Hurd-based distributions have been born, all of them spin-offs of an existing Linux distribution. In March 2003, Jon Portnoy started a Gentoo GNU Hurd system, but it was abandoned at the end of 2006. There was also a Hurd live CD at superunprivileged.org, but it appears to have stalled in December 2007. Luckily, two Hurd distributions are still active projects: Debian GNU/Hurd and Arch Hurd.

Debian GNU/Hurd is an active subproject of Debian, in development since 1998, but it is not officially released yet ("and won't be for some time", according to the project's home page). Debian GNU/Hurd is calling for help in the development of the distribution, which amounts mostly to porting software. About 67 percent of the Debian packages have been ported to the Hurd kernel, and the Hurd project has a compilation of common porting problems and their solutions. It's interesting to point out that the GNU Hurd developers rely on Debian GNU/Hurd and endorse it on their web site. The last official release of the Hurd without the Debian parts was 0.2 in 1997. On the Hurd project's status page they explain:

That Debian version closely tracks the progress of the Hurd (and often includes many new features), so little would be gained by creating an official pure Hurd release.

People that want to try Debian GNU/Hurd can install the most recent version, called Debian GNU/Hurd L1, or run the live CD that Justus Winter created. There's also a Qemu image made by Jose Luis Alarcon Sanchez (and made smaller by Samuel Thibault), which makes it easy to test Debian GNU/Hurd virtualized with KVM. All these versions work on x86 and x86_64 (in 32-bit mode) PCs. There's also some information about the first steps after installation, such as getting networking running and configuring X, and the GNU/Hurd user's guide is focused on the Debian flavor.

Another Hurd-based distribution, which started in the beginning of 2010, is Arch Hurd (with a logo that is a nice blend between the logos of Arch Linux and the Hurd). This project attempts to bring the spirit of Arch Linux (a minimalist and bleeding edge operating system) to the Hurd kernel. With just four developers, the project has managed to develop a basic Arch Hurd system in a couple of months.

Recently a live CD and installer has been written and, as expected from an Arch project, there is extensive documentation about installing Arch Hurd using the live CD and installing from within another distribution. Xorg 1.8 has already been ported and, while there are not many graphical programs yet, the system has the Openbox window manager and the XTerm terminal emulator.

Because the Hurd runs on Mach, hardware compatibility for these distributions depends on what Mach supports. Currently, GNU Mach uses a maximum of 1 GiB of RAM. Video card drivers are the ones from X.org, but if they depend on a special Linux kernel interface, only the VESA driver works. Sound cards and USB are not supported yet.

Google Summer of Code

The Hurd has been active in the Google Summer of Code project for some years now, sometimes as part of the GNU project, sometimes on its own. This year, the Hurd is participating with three projects under the GNU umbrella.

Jeremie Koenig, mentored by Samuel Thibault, is working on adapting the Debian Installer to produce up-to-date Debian GNU/Hurd installation images. Currently Debian GNU/Hurd is installed either using outdated CD images, or from an existing Debian GNU/Linux system using the crosshurd package.

Emilio Pozuelo Monfort, mentored by Carl Fredrik Hammar, is fixing compatibility problems exposed by projects' test suites when executed on the Hurd. This doesn't sound like an exciting task, but it is needed: test suites for programs like Perl, Python, GNU coreutils, and glib regularly fail on the Hurd because of shortcomings in the Hurd's implementation of system interfaces.

A third GSoC project, mentored by Sergio López, is being done by Karim Allah Ahmed: his goal is to bring the virtual memory management in The Hurd/Mach closer to that of other mainstream kernels, like Linux, FreeBSD, and XNU (the kernel of Mac OS X). He will look at those implementations to see if he can come up with improvements and optimizations for the Hurd.

Conclusion

All in all, the easiest way to currently run a Hurd system is by installing Debian GNU/Hurd. The system runs virtualized in Xen or Qemu, or on a physical system, provided that the hardware is supported by Mach. The lack of sound and USB support obviously means that it is of limited use for desktop users, but on the Hurd status page there is a testimonial of someone that has been using the Hurd for most of his everyday work for two years, so it is possible if your demands are low. A cursory look with apt-cache search by your author on his Debian GNU/Hurd installation in KVM confirmed that there's actually a lot of software available, including graphical programs.

Installing the Hurd is still not as simple as in the Linux world, but there are projects working on that. Although the Hurd is clearly not ready yet for general use as a desktop system, for people that are interested in the GNU operating system, now is a good time to give it a try.

Comments (4 posted)

New Releases

openSUSE 11.3 RC2 is now available

The second and final release candidate for openSUSE 11.3 is out. The final release is scheduled for July 15, 2010.

Full Story (comments: none)

Red Hat Enterprise Linux 6 Beta 2 Now Available

Red Hat has announced the release of RHEL 6 beta2. "Customer and partner testing of Red Hat Enterprise Linux 6 Beta is in full swing, and we have been very pleased with the strong positive feedback that we have received from our testing community. We are on track to deliver a final product that we expect will meet customer needs for years to come. The first Beta was released in April, and incorporated a wide range of new and upgraded features. Today we have released Red Hat Enterprise Linux 6 Beta 2, which provides an updated installer, additional new technologies and resolutions to many of the issues that were reported in the initial Beta."

Comments (none posted)

Ubuntu Maverick Alpha 2 released

Ubuntu's Maverick Meerkat Alpha 2 (10.10) is available for testing. This release includes the following editions: Ubuntu Desktop and Netbook, Ubuntu Server for UEC and EC2, Kubuntu Desktop and Netbook, Xubuntu, Ubuntu Studio, and Mythbuntu.

Full Story (comments: none)

Distribution News

Debian GNU/Linux

bits from listmasters and [RFH] lists.d.o web archive

Martin Zobel-Helas has a few bits from the Debian listmasters. Topics include Request for help: web archives, List archive spam, Bug categorization, and How to help.

Full Story (comments: none)

Fedora

Fedora Hall Monitors policy updated

The Fedora project has updated its "hall monitors" policy which empowers monitors to try to maintain a "be excellent to each other" atmosphere on the mailing lists. The biggest change seems to be that the monitors will no longer attempt to shut down list threads and will, instead, focus on specific problematic postings. "The Hall Monitors are not a solution to the problem of poisonous people, but rather, a method of addressing the symptom of the problem."

Full Story (comments: 1)

Fedora Board IRC Recap 2010-07-02

Click below for a recap of the July 2, 2010 meeting of the Fedora advisory board. Topics include FPL news, fedoracommunity.org, and Planet wiki page.

Full Story (comments: none)

SUSE Linux and openSUSE

Maintenance for openSUSE 11.0 extended

The support period for openSUSE 11.0 has been extended by about a month in order to provide users with a smoother upgrade path to 11.3. The last updates for 11.0 are now scheduled for July 21, 2010. openSUSE 11.3 is scheduled for a final release July 14, 2010.

Comments (none posted)

openSUSE India IRC Channel

There is now an IRC channel for openSUSE lovers in India.

Full Story (comments: none)

Newsletters and articles of interest

Quote of the Week

I know unexpected stuff breaks, people are human, and "software schedules are usually late." We can hold to a higher standard by mitigating these risks. In the grand scheme of things, two weeks late on a software release is hardly anything, and yet, given a choice, I'd like Fedora to be known as the distribution that always ships on time.
-- John Poelstra

Comments (none posted)

Distribution newsletters

Comments (none posted)

Duffy: Fedora Board Meeting, 2 Jul 2010

Máirín Duffy has written a summary of the July 2 meeting of the Fedora Board. "There is currently an ongoing discussion on the advisory-board list about having a fedoracommunity.org subdomain point to a fedoraproject.org/wiki page. Paul does not think it is the best idea because the point behind the fedoracommunity.org domain was to enable truly community-run sites that run outside of fedoraproject.org's policies. Not many Board members have disagreed on the thread so he wanted to bring up the topic to make sure it was being considered."

Comments (none posted)

Mandriva's Future Rosy or Rose Colored? (Linux Journal)

Susan Linton takes a look at the delayed release of Mandriva Linux 2010 Spring. "Mandriva has been providing enterprise and educational systems and support as well as selling boxed sets and USB drives of its desktop system, but they've always had difficulty competing with other Linux companies such as Red Hat and Novell in terms of revenue and the ability to land long-term contracts. Experts question Mandriva's ability to construct a profitable business model and users hope a freely available version will continue to be a part of the business model. Speculation on Mandriva forums has them abandoning the PowerPack and splitting their offerings into enterprise and community versions, much like Redhat and Fedora or Novell and openSUSE." The final release is currently scheduled for July 8, 2010.

Comments (none posted)

A Mint system based on Debian

The Linux Mint team is working on a Linux Mint desktop based on Debian testing. "The idea of a Linux Mint desktop based on top of Debian Testing is quite seducing. It's much faster than Ubuntu and the current Linux Mint desktops, it uses less resources, and it opens the door for a rolling distribution, with a continuous flow of updates and no jumps from one release to another. It's something we've always been tempted to do. Needless to say, whether it's been because of our lack of communication on that topic or not, this has been a source of numerous rumors within the community."

Comments (none posted)

Final openSUSE 11.3 release candidate arrives (The H)

The H looks at the second and final release candidate of openSUSE 11.3. "The 11.3 release of the openSUSE Linux distribution is based on the 2.6.34 Linux kernel and features support for the Btrfs file system in the installer. Support for NVIDIA graphics cards has been improved with the integration of the Nouveau driver. Other changes include various KDE, GNOME and LXDE desktop updates and changes, and better support for netbooks."

Comments (1 posted)

Red Hat Enterprise Linux 6 Hits Beta 2, Targeting Year End Release (Datamation)

Datamation covers the release of RHEL 6 Beta 2 and suggests that the final RHEL 6 release will happen before the end of the year. "In addition to the enhancements to the kernel and installer, Red Hat is also restructuring the beta for some specific use-cases. There is now a RHEL 6 Server release as well as a RHEL 6 Workstation release. Additionally, for the server release, there are now Clustered Storage, Large File System, High Availability and Load Balance versions."

Comments (7 posted)

Sabayon Linux 5.3 (Linux Journal)

Susan Linton reviews Sabayon Linux 5.3, a Gentoo based distribution. "To end users Sabayon Linux is a fully functioning, complete, and easy-to-use distribution. It ships with the latest in desktops and software with lots of tools for setup, maintainence, and configuration. In fact, it comes with lots and lots of software, including a nice selection of quality games. Users can choose from GNOME of KDE editions compiled for x86 or x86_64 systems. It also includes 3D acceleration and proprietary Wi-Fi drivers as well as codecs and plugins for full multimedia enjoyment."

Comments (none posted)

Stuart Winter: I learnt more about Linux in two weeks of using Slackware than in two years of using Red Hat (The Slack World)

The Slack World talks with Stuart Winter, a Slackware developer and maintainer of the ARMedslack project. "I started using Red Hat Linux in 1996 for a few years, but had a shell account on a friend's Slackware box. I started reading the config files and the rc scripts and saw how well they were commented and how clean the system looked. All of my systems were ARM desktops back then, apart from the one PC with Red Hat on it. So I got hold of a 486 and installed Slackware v3.5. I learnt more about Linux in two weeks of using Slackware than two years of using Red Hat-purely because everything had to be done by hand."

Comments (4 posted)

Page editor: Rebecca Sobol
Next page: Development>>


Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds