A quarter of the Hurd, Q3 of 2011: Arch Hurd with DDE, Debian boxes, GHM talk and GSoC: Java.

In the third quarter of 2011, the Arch Hurd hackers packaged DDE (Device Driver Environment), so a subset of the Linux 2.6 device drivers can now easily be run as user-space processes on Arch Hurd, replacing GNU Mach's in-kernel device drivers. (This has been possible before, too, but involved several manual steps.) At the time of writing, our DDE port supports several network cards, while for other driver types we will need to add further generic infrastructure. Also, Arch Hurd had a booth at FrOSCon and released a new Arch Hurd LiveCD, so new users can easily test the current state of the Arch flavor of the Hurd.

Richard Braun contributed additional GNU Hurd instances: a Debian buildd, a Debian porterbox, and a public Hurd box. Especially the last one is important for you: after requesting an account, you can use it to test the Hurd without any own setup.

Samuel Thibault sent a new Bits from the Debian GNU/Hurd porters to keep the Debian folks up to date with our progres. And it is quite good: thanks to the relentless work of our porters, you can now use 70 % of all Debian packages with the Hurd, so we're getting closer to the goal of finishing a Release Canditate in time for Debian Wheezy. If you can, for example, port Debian packages and want to help the Hurd, this is the perfect time to get in contact and port your favorite missing package to the Hurd.

A different kind of status update was delivered by Samuel Thibault on the GNU Hacker Meeting (GHM) in Paris. We hope you enjoy watching the video of the {{$community/meetings/ghm2011#thibault_hurd}}. He nicely explains how the simple yet powerful concept of a translator gives power to a system's less-priviledged users (that is, without root access), without any security implications, and how subhurds and neighborhurds compare to Linux containers. It's all about freedom 0.

On the technical side, Thomas Schwinge improved the technical documentation of the I/O path when translators are involved, to make it easier for new developers to understand how all the different system components interact. Amongst others, Guillem Jover, Fridolín Pokorný and Jonathan Neuschäfer sent many patches for GNU Mach, improving stability, fixing memory leaks and generally cleaning up the code.

Maksym Planeta finished a project he has been doing as a university task: replace GNU Mach's old zone memory allocator with a new slab allocator written by Richard Braun, who also mentored Maksym during the project. This allocator, apart from being overally cleaner than the zone allocator, is meant to waste less memory than the zone allocator (less fragmentation and more memory can be reclaimed by the VM system), there are debugging/inspection features, and it's SPM-ready, thus readily usable once we get up-do-date SMP support in GNU Mach. It is now being tested and integrated.

And last but definitely not least, Jérémie Koenig finished his Google Summer of Code project to improve Java support on GNU Hurd. All in all, he also improved the Hurd signalling code, ported OpenJDK and began designing and creating a library for Java bindings for Mach and Hurd which already allows writing a Hello World translator in Java. It is still pretty low-level, but it paves the way for extending the core of the Hurd with Java, which is one of the benefits of the Hurd's distributed multi-server architecture: different components of the operating system can be written in different programming languages; not just C, but also C++, Common Lisp, and now Java -- and more to come.

So if you want to help getting the Debian GNU/Hurd Release Candidate done, or want to dig deep into DDE to have more device drivers running as user-space processes, please get in contact -- and maybe already grab the source code.


The GNU Hurd is the GNU project's replacement for the Unix kernel. It is a collection of servers that run on the Mach microkernel to implement file systems, network protocols, file access control, and other features that are implemented by the Unix kernel or similar kernels (such as Linux). More detailed.

GNU Mach is the microkernel upon which a GNU Hurd system is based. It provides an Inter Process Communication (IPC) mechanism that the Hurd uses to define interfaces for implementing in a distributed multi-server fashion the services a traditional operating system kernel provides. More detailed.