GNU Hurd 0.6, GNU Mach 1.5, GNU MIG 1.5 released. Details.

If you want to give the Hurd a try, you may easily do so with Debian GNU/Hurd.

Please read the FAQ. Bug reports should be sent to bug-hurd or filed on Requests for assistance should be sent to help-hurd or filed on You can also find us on the Freenode IRC network in the #hurd channel.

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.


The Google Summer of Code 2015 is on! If you're a student, consider applying for a GNU Hurd project -- details to be found on our GSoC and project ideas pages.


The Google Summer of Code 2014 is on! If you're a student, consider applying for a GNU Hurd project -- details to be found on our GSoC and project ideas pages.


Happy 30th birthday, GNU! GNU Hurd 0.5, GNU Mach 1.4, GNU MIG 1.4 released. Details.

Which day could be better suited for publishing a set of Hurd package releases than the GNU project's 30th birthday?

... and here we have our birthday presents:

(If the NEWS links don't work, try the following ones -- which are served from a GNU/Hurd machine, by the way: GNU Hurd 0.5 NEWS, GNU Mach 1.4 NEWS, GNU MIG 1.4 NEWS.)

These new releases bundle bug fixes and enhancements done since the last releases more than a decade ago; really too many (both years and improvements) to list them individually, but please see the NEWS files. Many thanks to all the people who are helping!

If you want to give the Hurd a try, you may easily do so with Debian GNU/Hurd.

Please read the FAQ. Bug reports should be sent to bug-hurd or filed on Requests for assistance should be sent to help-hurd or filed on You can also find us on the Freenode IRC network in the #hurd channel.

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.

Debian GNU/Hurd 2013 released! Details.

It is with huge pleasure that the Debian GNU/Hurd team announces the release of Debian GNU/Hurd 2013. This is a snapshot of Debian "sid" at the time of the Debian "wheezy" release (May 2013), so it is mostly based on the same sources. It is not an official Debian release, but it is an official Debian GNU/Hurd port release.

The installation ISO images can be downloaded from Debian Ports in the usual three Debian flavors: NETINST, CD, DVD. Besides the friendly Debian installer, a pre-installed disk image is also available, making it even easier to try Debian GNU/Hurd.

Debian GNU/Hurd is currently available for the i386 architecture with more than 10.000 software packages available (more than 75% of the Debian archive, and more to come!).

Please make sure to read the configuration information, the FAQ, and the translator primer to get a grasp of the great features of GNU/Hurd.

Due to the very small number of developers, our progress of the project has not been as fast as other successful operating systems, but we believe to have reached a very decent state, even with our limited resources.

We would like to thank all the people who have worked on GNU/Hurd over the past decades. There were not many people at any given time (and still not many people today, please join!), but in the end a lot of people have contributed one way or another. Thanks everybody!

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.


Two quarters of the Hurd, Q3 and Q4 of 2012: libpthread conversion, installation CDs, hardware compatibility, porting. Details.

In November 2012, we finished the libthreads (cthreads) to libpthread (POSIX Threads) conversion. Converting the Hurd libraries to the pthread interfaces allows linking them together with other libraries that use this standard threading interface themselves. This project once was begun by Vicente Hernando Ara, and later continued by Barry deFreese, Thomas DiModica, Thomas Schwinge, Samuel Thibault, Pino Toscano, and now brought to completion by Richard Braun, who could not be scared by having to resolve the last remaining tricky issues before the transition could be completed.

Cyril Roelandt shared a patch series to fix double mutex unlocking problems. He found these using a simple script for Coccinelle, which is a static code analysis tool. We hope to see more such changes in the future, and we're always interested in hearing people who have experience with similar tools, for example to resolve other locking issues.

Thomas Schwinge together with Richard Braun and Samuel Thibault debugged and fixed a deadlock related to signal delivery, resulting from a regression due to earlier changes.

Also Samuel Thibault provided new installation CDs and a new QEMU image. Additionally to using pthreads, these now offer keyboard layout configuration.

In glibc, Pino Toscano implemented syncfs which ensures that all data in the filesystem gets written to disk, as well as support in procfs for statfs.

Thomas Schwinge improved the hardware compatibility of the Hurd by identifying and backporting some changes contained in Linux 2.0.40, which prevents data corruption due to a miscalculation of the size of medium-sized disks reporting 15 heads instead of 16. This fix was part of an effort to get Hurd running using a solid-state disk. Samuel Thibault improved network card detection on busses other than 0 and 2.

Several people ported and fixed packages, further increasing the number of Debian packages that work on the Hurd: Svante Signell ported mlocate-0.25, gnat-gps, libpst, libetpan, spl, dovecot, xplc, parrot, x86info, atlas, rrdtool, gdb, yodl, and fixed ntpdate to work again and improved the error handling in pflocal. Pino Toscano added patches for procfs, ptrace, fsync on stdout, muntrace, ulimit, glibc which among others improve POSIX conformance, making it easier to write programs which work on GNU/Hurd and GNU/Linux. And he made the test pass for FIFO sockets with mknod and added a size parameter to tmpfs and a version suffix option for GNU Mach's configure script. Cyril Roelandt fixed a ps bug, a documentation typo in ps and a missing linker flag in procfs. Matthew Leach fixed a compilation error with older GCC versions due to duplicate type definition. Ole Streicher fixed a bug in the Makefile of ftools-fv which was exposed by testing on Hurd. Samuel Thibault removed the out-of-date floppy-warnings in the debian installer.

So if you want to test if your favorite packages work on the Hurd and contribute towards making the full GNU system usable for a wider range of people, 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.


The Google Summer of Code 2013 is on! If you're a student, consider applying for a GNU Hurd project -- details to be found on our GSoC page.


Two quarters of the Hurd, Q1 and Q2 of 2012: Google Summer of Code, Barrier of Entry, Core, Porting. Details.

Google Summer of Code

Jérémie Koenig released the final report on his Google Summer of Code project Java on Hurd along with a summary of his changes and the challenges he faced. In a similar track, Samuel Thibault merged the slab branch, concluding Maksym Planeta's Goggle Summer of Code project on an improved memory allocator.

Pino Toscano improved the Hurd implementations of nanosleep, ptsname_r, getlogin_r, getgroups, and sendto, for POSIX compliance.

Barrier of Entry

Samuel Thibault, Ludovic Courtès and Thomas Schwinge reduced the barrier of entry into hacking the Hurd.

As part of this, Samuel prepared DDE in incubator, making about half the Linux kernel's network drivers compile on the Hurd, together with a netdde debian package and testing notes.

Ludovic contributed a continuous testing framework using a Nix-based GNU QEMU image. Thanks to his work, we now have automatic tests (background).

Thomas on the other hand moved the translators cvsfs and smbfs into the incubator Git repository, as well as libfuse, reducing the barrier of entry to improving them, so integrating cvs and samba in the filesystem and using FUSE translators can be stabilized more easily. Also he improved the Hurd build system, removing automatically generated files from the source repository, as now running autoreconf is all you need to create them.

Roland McGrath merged many glibc changes for upstream inclusion, reducing the maintenance load for our regular glibc development work.

The Core of the Hurd

Ludovic Courtès, Maksym Planeta, Samuel Thibault and Richard Braun took a dive into the core of the Hurd. Ludovic fixed invalid port deallocation in `symlink' and made console-run resilient against missing /dev/console. Maksym tested the performance of tmpfs, showing a speedup for apt-get calls from 22 seconds with ramdisk and 32 seconds with ext2fs to 16 seconds with tmpfs for apt-get invocations, showing the possible wins due to going deep. An obvious use case for tmpfs are faster Hurd LiveCDs. Samuel made it easier to dive in by improving debugging in GNU Mach. The debugger is now aware of the difference between kernel space and user space. This should substantially reduce the development time for features in Mach by giving nicer stack traces. And in the deepest core of the Mach, Richard improved memory mapping with a red-black tree, which should speed up memory access.


As in the previous quarters, we also saw lots of ported packages, including Richard's work on libpcap which brought wireshark and pcap_inject for easier network testing, libtool thanks to Samuel Thibault and Peter O'Gorman, gnat by Svante Signell for Ada support (a language used in many mission-critical applications such as automotive and aerospace, offering features like strong typing, modularity, run-time checking and parallel processing), and iconx thanks to Samuel Thibault, which fulfills a requirement of tests for many packages, among them glib - and allowed Svante Signell to port the literate programming language noweb and ifupdown. Also Thomas DiModica merged the cthreads to pthreads patch and added a branch for it to make it easier to work on getting Hurd to use the more current pthreads.

With his Debian GNU/Hurd maintainer hat on, Samuel Thibault posted some new bits from the Debian GNU/Hurd porters.

And now, as a final note, we want to share a story about real-life debugging on a Hurd system; IRC, freenode, #hurd, 2012-03-02:

<youpi> yay GNU/Hurd  
<youpi> I have added i_translator check in e2fsck, it was missing  
<youpi> I had a volume that was keeping making ext2fs crash  
<youpi> with a reproductible scenario  
<youpi> could easily work out it was i_translator, then add a
  check to e2fsck, run it, which indeed fixed, them, and voilà,
  ext2fs was working again
<youpi> all that on the same machine with *no* system reboot  
<youpi> just ext2fs restart :)

So if you want to experience enjoyable debugging of code deep in the core of your system, 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.


The Google Summer of Code 2012 is on! If you're a student, consider applying for a GNU Hurd project -- details to be found on our GSoC page.


A quarter of the Hurd, Q4 of 2011: Nix-based builds and bounty: slab allocator merged. Details.

This quarter, Ludovic Courtès contributed a continuously-built Nix-based QEMU image, raising the count of GNU/Hurd distributions to three: Debian GNU/Hurd, Arch Hurd, and now Nix. His build is still pretty basic, but a step into the right direction: continuous integration is a great facility for automated testing.

Samuel Thibault followed suit with a new Debian GNU/Hurd disk set as a christmas gift, and identified three easy porting cases with solutions:

  • undefined reference to dl_*: add -ldl for building
  • undefined reference to main: missing gnu* case in the linking part of or .in
  • undefined reference to clock_gettime or crypt: add -lrt or -lcrypt

These should help all those who want to help porting packages.

Maksym Planeta and Richard Braun finished integration of the slab allocator. From IRC, freenode, #hurd, 2011-11-14:

<braunr> there shouldn't be any noticeable difference [...]
<braunr> a bit less fragmentation  
<braunr> more memory can be reclaimed by the VM system  
<braunr> there are debugging features  
<braunr> it's SMP ready  
<braunr> and overall cleaner than the zone allocator  
<braunr> although a bit slower on the free path (because of
  what's performed to reduce fragmentation)  
<braunr> but even "slower" here is completely negligible

This also concludes our first FOSS Factory project -- one bounty has been redeemed, more are waiting.

Sergio Lopez documented his work on better memory management and memfs, making it easier for other hackers to join in working on that topic.

Our hackers also used the quarter for porting a good number of packages and fixing bugs. After fixing quirks in the Hurd's memory management system, Sergio Lopez reported success building webkitgtk+, whose build stresses the available memory resources on a 32-bit architecture to a large extent. Svante Signell was busy, too: pax, abiword, syslog-ng, ecl, fakeroot, daemon, and procps, e2fsprogs' quota. Samuel Thibault handled packagekit, evolution, emacs23, gcc-4.7, and iceweasel (firefox). Bouju Alain submitted a patch to support /proc/cpuinfo. Ludovic Courtès contributed a patch to allow for /hurd/init being symlink, made the Hurd build with glibc 2.14+, and worked with the GNU coreutils team on a few issues. Pino Toscano improved recvfrom with NULL address ports. Maksym Planeta continued working on tmpfs. Samuel Thibault turned /dev/random and /dev/urandom into native translators, modernized libtool's configuration, mknod's cleanup in error cases, fixed POSIX 2008 visibility, and fixed an issue in setresuid that broke sudo. Pino Toscano and Thomas Schwinge improved key handling in libpthread. Guillem Jover fixed Mach's int vs. long discrepancy, which takes us the first step towards porting the system to x86 64.

If you want to join us in our journey to realize more of the promises of the architecture of the Hurd, please get in contact -- and maybe already grab the source code and have fun hacking on Free Software!

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.


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

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 presentation by Samuel Thibault: GNU/Hurd, aka. Extensibility from the Ground (slides, video). 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.


A quarter of the Hurd, Q2 of 2011, PS: GNU Hurd Truths and Myths. Details.

After our last Quarter of the Hurd, Q2 of 2011 has been picked up by a bunch of news sites, blogs, and so on, discussions and speculations have been running all over the net:

We are happy to see that there is considerable interest in the Hurd; but we also saw some misunderstandings, false rumors, and outdated information floating around. Thus we will try to clarify the situation regarding some of the more common misunderstandings.

  • Debian GNU/Hurd strives to become an official Debian port: The Debian GNU/Hurd team is working hard to prepare a technology preview/release candidate for the next Debian release (Wheezy), to eventually become an official port alongside GNU/Linux and GNU/kFreeBSD -- but we don't know yet whether we will make it. This is also the understanding of (for example) Debian's spokesperson About Debian, The Hurd and Linux or in short: Yes, we will still have a Linux kernel, Alexander "Tolimar" Reichle-Schmehl, 2011-07-15. There is still substantial work necessary to indeed become a release candidate. If you want to help, please see our contributing page and the to do list maintained on We'd be happy to have you on board!

  • Java support for GNU Hurd is nearby: Jérémie Koenig is working on making a versatile Java programming environment available on GNU/Hurd as part of his Google Summer of Code project, focusing on OpenJDK 7. Experimental packages are already available. Also, Java support in GCC (via GCJ/ECJ) has been available before, which Jérémie also improved.

  • GNU Hurd supports X.Org, though a bit unstable: X support has been present for ages (anyone remember 1998's XFree86?), and X.Org also has been supported for a long time (for example, GNU Hurd support is explicitly mentioned in the X.Org 7.2 release announcement). It is true though that many modern graphic card drivers don't work anymore, as they require DRM (Direct Rendering Manager) support, so often only VESA is available. Also, X on the Hurd is somewhat unstable.

  • GNU Hurd has weaker device driver support than the Linux kernel: Most of the drivers we use today were imported from Linux 2.0 series. For network cards, Linux 2.6.29 drivers are available through DDE -- however, this is not fully integrated yet, so using these drivers needs manual setup for now (guide). Support for other driver types is also possible with DDE in principle, but it requires some not-trivial work for each additional class of drivers, so this can take some time to become available. (An additional benefit provided by DDE is that the device drivers run as regular user-space processes -- unlike the old drivers we were using so far, which are part of the underlying GNU Mach microkernel.)

  • The Hurd has SMP, but needs support for new chipsets: Both GNU Mach (the microkernel used by the Hurd), and the Hurd servers themselves come with SMP support. However, GNU Mach misses drivers for modern SMP chipsets, and there are also some SMP-related bugs in the implementation, so further work is needed for the Hurd to take advantage of multicore processors.

  • Installation can still be challenging: Please take notice of the README file -- just like with any software in development, there are some known pitfalls to avoid. (Or better yet, help to fix.) :-) Alternatively, you can simply use the the preinstalled image in QEMU/KVM/VirtualBox/...

  • GNU Hurd is not the same as GNU/Hurd: The GNU project set out in 1983 to create a complete free operating system. When a distribution such as Debian combines their GNU-based userland with the GNU kernel (named GNU Hurd), the result is more or less a full GNU system. However, such third-party distributions are distinct from what an official complete GNU system release would be; and thus we often call them GNU/Hurd for clarity, similar to GNU/Linux or GNU/kFreeBSD.

  • Performance: The benchmarks conducted by Phoronix (as reported by Test Driving GNU Hurd, With Benchmarks Against Linux, Phoronix, Michael Larabel, 2011-07-18) (Phoronix/Michael: thanks for doing these!) attest very good performance to the Hurd. Keep in mind though that these benchmarks were almost completely CPU-bound, so they essentially just confirm that we don't do anything stupid regarding CPU initialization (cache setup, etc.). The results would be different for benchmarks that actually exercise the operating system functionality more. The fact that the tests were performed in a virtualized environment, might also have helped the results, for example by mitigating the effects of our unoptimized I/O paths -- which are currently the major bottleneck in most situations. Nevertheless, these results are a hint that the extra IPC required in microkernel systems doesn't necessarily hamper performance quite as much as often believed. We are glad to see such solid benchmarks help dispel some of the myths around the Hurd and other microkernel-based systems.

  • Given the available manpower, the progress is very good: Over the past decade, there were seldom more than half a dozen developers at any given time hacking on the Hurd, in their spare time -- not hundreds of paid developers like Linux has nowadays. Considering this, the progress made is quite encouraging with the system being pretty usable for many day-to-day tasks now. It is generally understood that the ambitious architecture of the Hurd requires a lot of effort to get it working at all, but the recent progress shows that once the foundations are in place, the Hurd design indeed allows the developers to be very productive. To see the progress over the last few years, you can have a look at our news archive. If you're interested, you can find various ways of contributing. We'd be happy to see you join in, because for the Hurd, every single helping hand makes a big difference!


A quarter of the Hurd, Q2 of 2011: Graphical Installer, GSoC, and Debian. Details.


A quarter of the Hurd, Q2 of 2011, PS has been published.

Jérémie Koenig started working on his Google Summer of Code project: bringing not only Java to the Hurd, but also fixing or adding missing parts in the Hurd's components along the way. For example, he already contributed a set of signal handling improvements.

Samuel Thibault created the first Debian GNU/Hurd CD set with a graphical installer. You can dowload it at the usual place for Debian CD images.

Amongst others, Samuel also tracked down and fixed a port leak in file_reparent. This one got visible on the Debian package builder machine.

On the organizational side, there is now a real plan to release a Hurd variant of Debian with their next major release, Wheezy. Expected towards the end of 2012 or beginning of 2013, the Hurd-specific bits of that release effort's process are being tracked on There is still a lot of work left to be done, but -- as everyone knows -- a real goal as well as a bit of pressure might help to actually get it done. If you want to lend a helping hand in order to make this happen, porting packages is a great way to get started and do something useful at the same time.

Tanguy le Carrour offered to sponsor some Hurd work, and followed up on his offer by adding to the Hurd bounties that Thomas Schwinge had set up over at on FOSS Factory -- claim them if you can! It's not (not yet?) comparable to a Google Summer of Code student's salary, but a step into the right direction. So, if you have more money than time and want the Hurd to advance, why don't you join Tanguy?

At the end of August, Hurd folks will be meeting at the GNU Hackers Meeting in Paris. Samuel Thibault will be giving a talk (GNU/Hurd, aka. Extensibility from the Ground), and -- amongs others -- Jérémie Koenig will be there too, ready to answer all the questions about his Java/Hurd Google Summer of Code work.

Hey, I have more money than time or programming skills, and I'd like to help GNU Hurd development specifically -- how can we arrange for this, where can I donate money for GNU Hurd development?

If you're dwelling on such thoughts, here is the answer; here you can donate money for GNU Hurd development. Read on.

As its principal idea, FOSS Factory, means to serve as a hub and organizational platform for connecting Free/Open Source Software developers with monetary sponsors. From

FOSS Factory's mission is to accelerate the advancement of free/open source software by helping people collaborate on the design, funding, and development of innovative software ideas. All software solutions produced using our system are released under free/open source licenses. Our unique model brings the best of innovators from both the entrepreneurial and FOSS worlds together to solve real world problems using the mass resources of the FOSS community.

In very general words, their modus operandi is that the community (including the monetary sponsors) works together with the developers on splitting up tasks into suitable and assessable sub-projects as necessary, and then act as the reviewing instance, deciding on such sub-projects' success (and payment, successively). For more details see their System Overview.

For now, we can assume that the amount of money to be made by working on a GNU Hurd task in this framework is likely to be a symbolic amount only, rather than being representative for the real effort that needs to be invested. Software development is expensive, mostly due to the amount of time that is needed for completing any non-trivial task. Instead, these bounties should be regarded as an attraction/reward, perhaps also simply as a motivation for a developer to focus on one specific problem, and bringing it to completion.

Working on a task and/or suggesting/donating for a new task.

In principle, any Hurd-related development task is applicable (for example, from the GSoC project ideas, or from the open issues list), but it is of course recommendable to match sponsors' ideas with those of the developers and maintainers. For this, if you want to sponsor a project, but don't know which one to choose, or if you want to work on a bounty that is not yet listed on the site, we suggest that you talk to us first, either publically on the bug-hurd mailing list or privately on, if you prefer.

Both for supporting (donating) as well as claiming a bounty, you have to register at their site, and proceed from there. Please don't hesitate to ask Thomas Schwinge if you need help.

Continue to explore the list of open bounties.

This new installment is in no way meant to depreciate the developers' current, un-paid, efforts. It is also not meant to replace the volunteer work in the long term. Neither is it meant to trick the general FSF fund raising out of a few dollars. Instead, this is simply an additional means, a place for donators to give money for Hurd-specific tasks.

Everyone of the existing crew is eligible to do coding under this bounty system, but we also hope to attract new developers -- in a sense similar to our many years of participation in the Google Summer of Code.

Participation in/use of FOSS Factory's services has explicitly been set up personally by me, Thomas Schwinge; there is no inherent connection to the GNU Hurd maintainers. This also means that each contribution that comes to life out of FOSS Factory's framework is subject to the same rules/review process as any other contribution has always been.

Unless willing to discuss these publically, any concerns, questions, requests regarding this system can always be addressed directly to me.


A quarter of the Hurd, Q1 of 2011: GSoC, and new faces. Details.

We're again participating in the Google Summer of Code's 2011 edition. If you know someone who knows that her neighbor would be interested in getting mentored (by us) and paid (by Google) for working on a GNU/Hurd task, please hurry up: the student application period will end this Friday, 2011-04-08.

There's further progress to be reported on the package porting front: additionally to the usual suspects, Svante Signell has actively started with contributing by fixing or porting his favorite packages to GNU/Hurd. Welcome, Svante!

Amongst other fixes, Diego Nieto Cid submitted his work for using XKB's keymaps for the Hurd console. Of course, he was not the only one to contribute fixes; there's always our bunch of folks who appear every other month, or week, and send in some contribution. Also, as we ask our GSoC applicants to submit patches in order to substantiate their application, we've seen some additional ones due to that. (And you can, too.)

The Arch Hurd folks published their Year of Arch Hurd report, wrapping up their progress, including GHAMP (GNU/Hurd, Apache, MySQL, and PHP),, and their Arch Hurd LiveCD. We had published our YotH 2010, too.

Finally we got a nice recognition (or did they mean...) by xkcd, How to Write Good Code, subtitled You can either hang out in the Android Loop or the HURD loop. Go figure! ;-)

We'd like to pass on these marvelous news from our Release Management Team, headed by Release Manager Samuel Thibault:


There are rumors that Duke Nukem Forever will actually be released in Apr^WMa^WJune 2011, so there's no escape for the Hurd any more, we had to finish and release. There has been considerable progress lately, so it is with great pleasure that the Hurd maintainers team decided to release version 0.401 of the GNU/Hurd Operating System. As the version number and image size suggest, this is only a small preview of course, but we expect GNU/Hurd to be of production-quality within the third millenium, to be sure.

A LiveCD demo is available on and can be trivially tried using qemu -cdrom hurd-0.401.iso

We hope that you will appreciate its features and speed.

Are you interested in contributing to the GNU Hurd project? Just request an shell account on one of our servers and get started.

It is also worth noting that like in previous years, GNU/Hurd runs for the GSoC program, details can be found on


The Google Summer of Code 2011 is on! If you're a student, consider applying for a GNU Hurd project -- details to be found on our GSoC page.


A year of the Hurd: 2010. Details.

Originally published in GNU Status Reports: January 2011.

From Olaf Buddenhagen, Arne Babenhauserheide, Thomas Schwinge: Yeah, that's quite right: the GNU Hurd project is still alive!

According to our mission statement, the goal is creating a general-purpose kernel suitable for the GNU operating system, which is viable for everyday use, and gives users and programs as much control over their computing environment as possible. It has a unique multi-server microkernel-based architecture---bringing advanced operating system research to the mainstream. More concretely, it's a collection of user-space server processes that run on the GNU Mach microkernel.

The Hurd doesn't fully deliver on the everyday usability goal yet, but it is seeing continuous improvement---and 2010 has been no exception. Let's take a look at the progress throughout the year.

  • Apart from having done a lot of other work, Samuel Thibault, our Jack of all trades, merged his development branch that added Xen domU support to GNU Mach, which makes it possible to run a GNU/Hurd system as a Xen guest. Development of this started in 2007, and since then it has been heavily tested by using it for the Debian GNU/Hurd build servers, most of our public GNU/Hurd systems,, and the Hurd project's wiki web server.

  • We had Zheng Da work on a new hardware device driver framework, which is based on the Dresden L4 (Fiasco) group's DDE project, and allows running modern Linux kernel drivers as user-space server processes. Many network cards already work perfectly with this new framework. (It has not yet been integrated into the mainstream Hurd code base, so it needs to be compiled and set up by hand.) Other driver classes, such as hard disk controllers, will require further work.

  • As in the previous years, we again participated in the Google Summer of Code 2010. Olaf Buddenhagen is our main guy for organizing this.

    Jérémie Koenig ported the modern Debian Installer to Debian GNU/Hurd. Installation images using the new installer are replacing the previous CD images, which were using an installer based on the old Debian boot floppies (and running under the Linux kernel)---Philip Charles has been maintaining these single-handedly for almost ten years! The new installer images are available from

    Emilio Pozuelo Monfort was investigating specific compatibility problems exposed by the extensive test suites coming with some software packages. Emilio's analysis uncovered a number of programming errors in the Hurd code, and he fixed several of them. As these typically affected other programs too, this improved stability and compatibility in general.

  • Jérémie Koenig created a new implementation of a procfs translator, which is considerably more robust and efficient than the previous one. Tools such as top can now be used without problems.

    Some other translators (gopherfs, netio, tarfs) which have been created by external contributors in the past have been fixed up by Manuel Menal, and packaged in Debian. Thus, some of the results of Hurd's extensible architecture are now easier to access, and these updated translators can serve as examples for other developers to implement their own ideas.

  • In addition to various general stability, compatibility, and portability fixes, several people (Samuel Thibault, Pino Toscano, Emilio Pozuelo Monfort, and others) have been working on fixing issues with specific Debian packages. So far, about 68% of all Debian packages are also available for Debian GNU/Hurd.

  • Michael Walker started the Arch Hurd distribution, and together with other enthusiastic Arch developers (Allan McRae, Matthias Lanzinger, Alexander Preisinger, Stephen Gilles, Diego Nieto Cid) they got it working in an amazingly short amount of time, both as an installable system, and a live CD. So now there is a choice between two well-featured distributions for the Hurd. These new people of course also help forwarding Hurd development in general---Diego in particular contributed various patches to the Hurd console and other components.

  • Carl Fredrik Hammar finished and presented his thesis, Generalizing mobility for the Hurd,, and passed with distinction.

This is a very short digest of what happened in the last year. You can read our regular Month of the Hurd at, or by subscribing to our RSS feed at

If you are interested, for example, in doing a university project on a multi-server microkernel-based operating system, or if you are interested in contributing to Hurd development in general, please see Or just talk to us at or the #hurd IRC channel on freenode.

French article by Manuel Menal, Gnu : L'année 2010 du Hurd.


A month of the Hurd: CD images. Details.

Samuel Thibault updated the Debian GNU/Hurd installer ISO, and also again did his regular batch of bug fixing.

Arch Hurd is back in action!, too: they uploaded a first version of a graphical live CD.

Neal Walfield reported on the state of his Viengoos kernel / research project, which unfortunately is currently on hold, due to other commitments.

Olaf Buddenhagen raised an interesting use case: you can use a subhurd for debugging the main Hurd system. That is virtualization at its best!

Right before the end of the year, Diego Martin Nieto Cid sent a patch series to fix some issues with make dist.

Happy New Year 2011, everyone!


A month of the Hurd: a short one. Details.

That's a short one. Apart from the regular business of having internal design / development / etc. discussions, and helping people to get their Hurd systems running, we had Diego Nieto Cid post patches (1, 2) to correct two programming errors, which Samuel Thibault quickly reviewed and applied to the source repositories.


A month of the Hurd: bug fixing / flubber re-installation. Details.

A bit of bug fixing has been going on:

Samuel Thibault taught GNU Mach that Intel Pentium 4 and Opteron-class CPUs are not just i386, but in fact a bit more advanced. Not only does this help GNU Mach to select optimized code paths, but this information is also propagated to the user space, and used for the uname command, for example.

Pino Toscano continued fixing bugs in the socket-related glibc code and Hurd's pfinet.

After finding out that our pread implementation does not conform to the POSIX standard in one aspect, Manuel Menal analyzed this, and posted a patch.

Alexey Kuznetsov privided IPv6 raw socket fixes for pfinet.

Michael Banck uploaded a new version of crosshurd to keep up with recent packaging and dependency changes.

Samuel Thibault uploaded gopherfs packages to the Debian repository. He also enabled IPv6 support for Debian Installer installations.

Thomas Schwinge:

It's been a really long-long time (hooray!), but now flubber's root file system is totally hosed, and thus needs to be re-installed. (I've been running apt-get dist-upgrade when the box apparently crashed.) Running e2fsck on it spew out over 50.000 lines of illegal and multiply-claimed block lists, before I terminated it, so no chance. I'll do this over the weekend. /home/ etc. are not affected, thanks to being on a separate partition.

As of two days later, the machine was re-installed.


A month of the Hurd: new translators / bug fixing. Details.

Yes, we're a bit late this month. Arne Babenhauserheide, the guy who has started and has been drafting the Month of the Hurd ever since June 2009 (yes, that one and a half years already!), moves on to other duties -- his wife has given birth to our first Hurd developer offspring (as far as I know):

Last friday my son Leandro entered our cold and too bright but friendly world, [...]

We wish them good luck for their new parental duty!

The other guy, Thomas Schwinge, who has been editing and publishing the Month of the Hurd will take over -- at least temporarily (mind you, Arne).

But, we got some Hurd news, too.

Olaf Buddenhagen posted a patch that allows to obtain number of ports in proc and libps by means of adding a new RPC -- and subsequently held a discussion with Samuel Thibault who proposed that instead of adding such functionality on an ad hoc basis, a more generic solution could be found, too. In the end, they agreed that this functionality was useful enough, and the patch was committed.

It is important to spend time on designing proper interfaces (RPCs in this case), but on the other hand what we're doing now need not be set in stone forever, as Olaf explains:

Well, we already have a mechanism for making communication protocols in the Hurd extensible: it's called the RPC mechanism... :-) Let's not try to invent another generic mechanism on top of RPCs.

If ten year down the road we indeed end up with half a dozen miscallaneous info queries, we can still replace them by a new RPC covering all of it...

Thomas Schwinge moved some packages (gopherfs, netio, tarfs) from hurdextras to the Hurd's incubator repository; these are now available as Debian GNU/Hurd packages. Manuel Menal also spent time on actually making tarfs and good ol' gopherfs usable.

Similar treatment has been applied to Jérémie Koenig's new procfs implementation; this one is now used in Debian GNU/Hurd.

Jérémie found some problems with signal delivery -- signals apparently are not delivered as expected. Roland McGrath, this hairy code's original author, provided some insight:

It's not that it's a bug, it's that the Hurd has never had POSIX-1996 multithreaded signal semantics. The Hurd implementation predates those specifications.

He continued to explain:

The Hurd signal semantics are well-defined today. They are not the POSIX-1996 semantics in the presence of multiple threads per process.

This explains for differences comparing to other recent Unixy systems, for example Linux. Neal Walfield, our libpthread's main author, states that he sees no convincing reason to not adopt POSIX/Linux signal semantics and abandon Hurd signal semantics. Jérémie went on to send a first patch. While already working in that area, Samuel Thibault applied some further fixes to our two threading libraries, and among others, he also sent a related glibc patch to fix signal-catching functions. And then, there is still the project about converting the Hurd's libraries and servers to using libpthread instead of Mach's cthreads (libthreads); likely such signalling system moderizations could be done alongside of that.

Manuel Menal fixed a bug that occurred when sending file descriptors with SCM_RIGHTS over PF_LOCAL sockets. He also identified this bug as the reason why the SSH daemon's privilege separation was not working on GNU/Hurd -- now this is fixed and you can use the default of UsePrivilegeSeparation yes.

Michael Banck has, based on user feedback, applied some changes to the crosshurd package, and uploaded a new version.

In other news, the Arch Hurd guys rightfully concluded that now that they're having a package available for almighty GNU Emacs, no further user-land packages need to be ported. If only everyone was using Emacs...

Last, and least, there are rumors about our colleagues over at the Duke Nukem Forever department getting serious again. We shall see. :-)


A month of the Hurd: Media Appearances, procfs, Arch Hurd. Details.

Neal Walfield and Michael Bank have been doing presentations related to the GNU Hurd: from the GNU Hackers Meeting in the Hague you can watch the video of the presentation by Neal Walfield: GNU/Hurd: It's About Freedom (Or: Why you should care) where he details why we're still interested in working on the GNU Hurd, and there is another presentation (including video) by Michael Banck: Debian GNU/Hurd -- Past. Present. And Future? (slides) from DebConf10, including a very nice nod towards the main actors who are currently pushing the Hurd forward.

Jérémie Koenig wrapped up his Google Summer of Code project (Debian Installer) by posting his Hurd patches for installer/build as well as the patches used for hurd 20100802-1~jk7 to the debian-hurd mailing list. Most of them have been handled in the mean time, and we're still waiting for you to test his work by following his easy four-step instructions.

However, even though that this year's GSoC has come to an end, he didn't stop working: among other things, he has rewritten procfs and published his version just before the end of the month:

I have successfully tested it with most of the Linux procps utilities, as well as busybox and htop. It seems to be stable, not too slow, and it stays under 1.5M in resident size.

Testing it is as simple as this:

$ git clone git://
$ cd procfs/
$ git checkout jkoenig/master
$ make
$ settrans -ca proc procfs --compatible
$ ls -l proc/

Thomas Schwinge added some more information to the web pages, notably a bunch of open issues reports, to have them registered in a generic place, and to facilitate coordination. If you're looking for a Hurd-related project to work on, go looking there! He also converted and merged some of the hurdextras CVS repositories into the hurd Git repositories and our incubator. All of this should make it easier for new contributors to join in.

The Arch Hurd guys have some news to share, too:

Finally, amongst other bug fixing and other development work by the usual suspects, we had a short review of what the current Hurd contributors still need to use a GNU/Hurd system for most of their day-to-day tasks. This may help to prioritize the development efforts.


A month of the Hurd: Thanks, Phil!, Debian Installer, compatibility, and LWN article. Details.

Philip Charles, our 72 years old provider of Debian GNU/Hurd installation CDs has now resigned from that position. This has lead to a flood of public thank-you responses, and surely yet more of those have been sent privately. Phil, thanks again for providing the many installation images you've started producing nearly ten years ago! -- oh, the joy of (not) uploading CD-size images using a 56k modem... -- and that have been the first choice for many of us to get a Debian GNU/Hurd system installed.

On the other hand, there's no need to worry about these news: Jérémie Koenig got the Debian Installer for the Hurd into a basically working state; there is a simple four step installation guide. This brings us a big step forward towards easy installation of Debian GNU/Hurd and automated image creation. You can track Jérémie's progress on his user page.

Emilio Pozuelo Monfort also made progress with his Google Summer of Code work. For example, he posted a new iteration of his proposed changes to exec as well as he added support for sending file descriptors over Unix sockets. These patches add features and improve compatibility to other systems, and thus help to get more software packages to work as expected on GNU/Hurd systems.

Ludovic Courtès fixed make dist, which allows for easy tarball creation of the GNU Hurd sources.

We've been in the news last month -- and this month yet again: LWN posted a well-researched article on the status of the Hurd: Koen Vervloesem: The Hurd: GNU's quest for the perfect kernel.


A month of the Hurd: Debian Installer, clustered page-in, and a bunch of bug fixing. Details.

A bunch of patches have hit the mailing lists and source code repositories:

Jérémie Koenig posted a preliminary patch to add initrd (initial ramdisk) support in GNU Mach for his Google Summer of Code 2010 project: Debian Installer. With this patch, and some other patches that are still in flux, he ended up being able to install a Debian GNU/Hurd system using the Debian Installer -- which is the goal of his project. Patches being in flux means that there's still work left to be done to properly solve some issues, so there's no need to worry that Jérémie wouldn't have any work left until the GSoC ends.

Karim Allah Amed came up with the first patch for porting the clustered paging-in code from OSF Mach to GNU Mach, which should improve the virtual memory performance of the Hurd.

Emilio Pozuelo Monfort got a bug in glibc fixed, which unblocks a problem we've seen in coreutils' ln, and also continued to make progress on other grounds.

Zheng Da began to commit patches to make his DDE project support block device drivers, apart from fixing some other issues, too.

Samuel Thibault fixed memory leaks in pfinet, which is the Hurd's TCP/IP networking unit. Even though that a crashed pfinet server will be restarted upon its next use, having it eat up all system memory is to be avoided, of course -- and is corrected with these patches.

Carl Fredrik Hammar submitted patches to improve the stability of the auth server (rendezvous port death / invalid rendezvous ports).

Lastly, if you haven't seen it already: Richard Hillesley has posted an article GNU HURD: Altered visions and lost promise that caused quite a bunch of discussion -- some of it valid and constructive criticism, some of it less so. If you want to come in contact with us GNU Hurd developers, there are numerous options to contact us!


A month of the Hurd: DDE linux26, thread storms, patches, new live CD and IRC meetings. Details.

Zheng Da reported on the state of his ongoing work of porting DDE linux26 to the Hurd, which is meant to improve the GNU/Hurd hardware support. The devices as emulated by QEMU and VMware already work fine, but he's still seeking help for testing on real hardware.

Sergio López published patches as well as readily-usable packages to prevent thread storms in ext2fs when synchronizing large pagers. This should improve system performance and stability.

Emilio Pozuelo Monfort and Sergio López developed further patches (for example: exec, tmpfs) to fix or improve the various internal Hurd servers, and discussed them with other Hurd developers.

Justus Winter created a live CD with an installation wizard in the spirit of the OpenBSD installer. He needs testers to help improve it.

Ludovic Courtès informed that he has added support for cross-building packages from GNU/Linux to GNU/Hurd to the Nix package manager, as well as doing continuous cross-building of the GNU Hurd itself, and glibc.

The regular IRC meetings for Google Summer of Code students, their mentors, and any other interested parties are continuing on Mondays and Thursdays, 10:30 UTC, as Olaf Buddenhagen reported. If you want to catch up, have a look at the #hurd channel logs.

As always in the Month of the Hurd, these news blurbs are only a selection of what happened in the last month. There's always more to be found on our mailing lists, especially bug-hurd.


A month of the Hurd: Arch Hurd, updated Debian GNU/Hurd QEMU image, and GSoC students. Details.

The Arch Hurd folks keep making good progress: their count of available packages keeps increasing, and one of their team reported the first instance of Arch Hurd running on real hardware (and uploaded a photo as evidence).

Of course, our Debian port is still progressing, too: 66% of all Debian packages are currently available for Debian GNU/Hurd.

Samuel Thibault's fix got included in libxcb1, so again works out of the box using a simple startx.

Philip Charles extended his offerings with an updated GRUB USB stick for booting Debian GNU/Hurd.

Carl Fredrik Hammar proposed a patch to faciliate debugging the startup of misbehaving translators.

Mainly thanks to Jose Luis Alarcon Sanchez, we now have a new QEMU image. It can be run with a simple qemu -m 512 -hda debian-hurd-17042010-qemu.img.

Thomas Schwinge updated our glibc maintenance repository to a recent version, including a bunch of the patches from the Debian glibc package (and these are meant to eventually be submitted upstream). After a long break, he as well updated his toolchain cross-compilation script cross-gnu to the current source code packages, and added C++ support.

On to the Google Summer of Code 2010: we got three students working on the Hurd this year:

We'd be happy to see YOU sign up on our mailing lists (bug-hurd and debian-hurd are the main lists), and contribute towards making the Hurd usable for everyone, as written down in our mission statement. Perhaps one of the unassigned projects (outside of the Google Summer of Code context) from our project ideas list is fit for you?


A month of the Hurd: some more bug squashing and Google Summer of Code 2010. Details.

This month saw bugs dying as they met hackers like Jérémie, Samuel, or Zheng, Thomas, or Jakub (keeping it to a few ones which were discussed on the bug-hurd mailing list).

Olaf, Thomas and Fredrik wrote and submitted our organization application for the Google Summer of Code 2010. However, Google is asking most GNU projects to work under the GNU project umbrella, so we aren't listed as an organization on our own, but instead will again participate as a subproject of GNU.

Anyway, this organizational detail is not at all important for interested students; you can apply for any of the ideas that are listed on our project ideas page (or come up with your own ideas, of course!) via the GNU project GSoC page. If you apply, please also include the information we're asking for on our student application form. Don't hesitate to contact us beforehand, if there are any questions. We're looking forward to seeing your applications, please send them in before 2010-04-09!


A month of the Hurd: DDE driver, / libpciaccess, FOSDEM, and Google Summer of Code 2010. Details.

A bit late, but here it is finally: the MotH for February, 2010.

This month saw the first running and testable DDE driver by Zheng Da, with which he begins to reap the benefits of porting DDE to the Hurd -- essentially, allowing us to use current Linux device drivers.

Samuel Thibault pushed a libpciaccess x86 backend to X.Org:

This adds support on x86 for OSes that do not have a PCI interface, tinkering with I/O ports, and makes use of it on GNU/Hurd.

In the course of this, he also got commit access to, so it should be easier now to get further Hurd-related patches applied.

As announced in our previous news blurb, at FOSDEM, Bas did his presentation of Iris, a new capability-based microkernel OS in the Embedded Developer Room, and Olaf illustrated Why is Anyone Still Working on the GNU Hurd?, and presented his work of Porting KGI graphics drivers from Linux to GNU Hurd, in the Alt-OS Developer Room.

In Mikel Olasagasti's words:

The room was full and people was "standing-up" for the talk. Some people even couldn't enter to the room (+20?).

Antrik [Olaf] made a good job. Was nice for the crowd to see Hurd running X, slow but working.

The regular IRC meeting schedule has been changed to Wednesdays, 11:00 UTC; see the IRC page for details.

Last, but not least, it is time again to think about the Google Summer of Code. In 2007, the GNU Hurd had one successful project, in 2008 five of them, 2009 saw another one, so we obviously plan to make it five projects again this year. We already have dozens of ideas online, and will add yet more -- also based on YOUR suggestions and wishes!

So, if you're a student, and interested in working on the GNU Hurd, please join in; browse through the GSoC pages, and don't be shy to contact us!


A month of the Hurd: Arch Hurd, FOSDEM preparations and a thesis on mobile Hurd objects. Details.

This month, we saw the first booting version of an Arch Hurd system, which seconds the Debian GNU/Hurd distribution that already provides two third of the Debian software archive compiled for GNU/Hurd.

Nine Hurd developers will meet at FOSDEM 2010 on February 6th and 7th in Bruxelles, Belgium. On Sunday, Olaf will be giving two presentations in the Alt-OS Developer Room: Why is Anyone Still Working on the GNU Hurd? (10:30), and Porting KGI graphics drivers from Linux to GNU Hurd (13:00). The day before, on Saturday, Bas will be giving a talk about Iris, his new kernel (18:00, Embedded Developer Room).

Carl Fredrik Hammar finished and presented his thesis Generalizing mobility for the Hurd and passed with distinction. Congratulations! Its abstract reads:

The GNU Hurd features mobile objects in its implementation of filesystem backing stores. This thesis investigates the limitations and security concerns these objects present, and how they can be overcome. This is done in preparation for new applications that feature mobile code and mobile objects. In addition, one such application is studied and implemented, in which mobile code is used to make the ioctl system call more extensible.

So, when are YOU going to do a thesis, or another project on a GNU/Hurd-related topic? Contact us if you are interested!


A month of the Hurd: official Xen domU support, DDE, porting, and FOSDEM 2010. Details.

This month Samuel Thibault merged his development branch into GNU Mach's master branch -- meaning that his GNU Mach Xen domU port is now part of the official sources. Only the microkernel (GNU Mach) needed to be extended, and no changes were needed in the Hurd, or glibc code bases. He had started this port in 2007 already, but it has been in heavy use over the last two years already, so merging it into the main source bases was long overdue.

He also got the necessary Xen patches committed into Xen's unstable branch, so that from Xen's 4.0 release on you'll be able to boot GNU/Hurd systems using pv-grub, without the need to prepare a special bootstrap image (like an initrd).

Of course, running GNU/Hurd systems in other virtualization environments is possible too, but the Xen domU approach offers superior performance compared to QEMU's machine emulation, for example.

Samuel also spent some time on adding code for detecting invalid (duplicate) port deallocations, and started fixing these, as well as he fulfilled his usual share of miscellaneous bug fixing.

The DDE port of Zheng Da now passes the first tests, bringing us the first steps towards updated device drivers -- and much lower overhead for maintaining them.

Now that the Debian GNU/Hurd build stats are again hosted on the master Debian build machine, Debian developers see their packages' build failures more prominently, and quite a few started to fix their packages.

Thus, thanks to the porting work of mainly Emilio Pozuelo Monfort and Pino Toscano, users of the Hurd can get many more packages directly via the Debian GNU/Hurd distribution. Thanks to their and the other porters' relentless work, the percentage of available Debian packages has reached 66%, rising. For a specific example, they ported many GNOME packages, so that the gnome-core metapackage is installable again. Please test these and report back.

Thomas Schwinge started the planning for a GNU Hurd folks meeting at FOSDEM on February 6th/7th 2010 at the Université Libre de Bruxelles.

Guillem Jover jumped in and started fixing GNU Mach build warnings -- meaning that Thomas Schwinge's evil plan finally worked out, when he enabled -Wall in an October 2006 commit:

+# Yes, this makes the eyes hurt.  But perhaps someone will finally take care of
+# all that scruffy Mach code...  Also see <>.
+       -Wall

The GNU Hurd team wishes a pleasant Year 2010 to everyone!


A month of the Hurd: initial work on network device drivers in user space, GRUB 2. Details.

This month Zheng Da, our former Google Summer of Code student working on network virtualization and some related topics, published the code for the pcnet32 device driver that he had modified to run as a user-space process instead of inside the kernel, and posted some preliminary performance benchmark results. The test results are mostly on par with the in-kernel driver, so they show that moving the lower-layer parts of the networking stack, the device drivers themselves, into user space can be done without losing (much) performance. Given this encouraging start, work is going on to explore whether the Device Driver Environment that has been created for L4-based systems can be used for providing GNU/Hurd systems with device drivers that (a) are more recent than our current ones, (b) support classes of devices that we don't support so far, and (c) are running as (possibly separate, fault-isolated) user-space processes.

Thanks to Samuel Thibault, the latest Debian GRUB 2 package (1.97+20091130-1) supports native installation from GNU/Hurd itself -- booting GNU/Hurd systems with GRUB has always been working, but until now it wasn't possible to install GRUB from a GNU/Hurd system. GNU GRUB has originally been written for booting GNU/Hurd systems, so this step completes its original purpose.

Samuel also continued to work on preparing the Xen branch of GNU Mach for being merged with the mainline code, and he fixed a kernel panic in the kernel's floating point support code.


A month of the Hurd: new installation CDs, further Git migration, porting. Details.

This month Philip Charles created a new installation CD, the L series, for the Hurd, which brings us a big step towards installing the Hurd from the Hurd (without the need of a Linux-based installer). If you enjoy testing stuff, please give it a try.

On the same front, Michael Banck uploaded a new version of crosshurd that makes it again possible to use this package for creating a GNU/Hurd system image directly from Debian unstable packages.

Also, Thomas Schwinge migrated Sergiu Ivanov's nsmux, Flávio Cruz' cl-hurd (clisp bindings), and Carl Fredrik Hammar libchannel repositories into our new incubator Git repository, making them easier to access for other contributors.

Our bunch of porters continued to make further Debian packages usable on GNU/Hurd: Pino Toscano worked on a lot of packages, and Wesley W. Terpstra made mlton build -- together with Samuel Thibault, who first had to enhance GNU Mach to support allocating more than 1 GiB of RAM to one user-space process, which mlton needs.

On the go, Samuel also fixed a number of other bugs here and there, for example together with Eric Blake and Roland McGrath hashed out a difficile issue in the filesystem servers regarding POSIX conformance and system stability.


A month of the Hurd: Successful Google Summer of Code project: unionmount. Details.

This month saw the successful completion of the Google Summer of Code 2009, for which Sergiu Ivanov created a unionmount translator. His work allows you to simply union one directory or translator into another one, so you see the files of both of them side by side.

He was mentored by Olaf Buddenhagen and both are now working on polishing the code and extending the namespace based translator selection (nsmux) which allows you to read a node with a selected translator by simply appending ,,<translator> to its name.

That aside, we saw the usual steady rate of enhancement discussions, as well as bugs getting fixed: X server crashing, preventing that GCC versions after 4.2 optimize too much, etc.


A month of the Hurd: hurd Debian package, union mount translator, bug fixes, and a job opening. Details.

Samuel Thibault uploaded a new version of the hurd Debian package which improves system stability by fixing a long-standing bug in the exec server that had randomly made it hang, inhibiting the creation of new processes.

Sergiu Ivanov implemented most of the functionality of the union mount translator which allows combining the filesystem trees exported by several translators with the filesystem tree of the underlying node (in contrast to a pure unionfs, which won't do that). The patches are currently undergoing testing and review on the bug-hurd mailing list. This work is being done as a Google Summer of Code project, and we're happy to tell that Sergiu successfully passed the project's midterm evaluation.

Also, Zheng Da fixed a bug in GNU Mach's BPF (Berkeley Packet Filter) implementation and contributed a number of fixes and improvements for rpctrace which should help further debugging.

Aside from looking for new contributors all the time, here is another job opening that doesn't require specific Hurd knowledge: we're seeking someone interested in writing a regression test suite for Hurd components.


A month of the Hurd: Git migration, stand-alone libpthread and updated status. Details.

This month Thomas Schwinge finished migrating the main Hurd, GNU Mach, MIG, libpthread and unionfs to Git. You can find the new repositories at

Also, he made libpthread buildable stand-alone by separating its build system from the Hurd's.

Additionally, Olaf Buddenhagen wrote a usability report about his experience with the GNU Hurd for everyday work.


Sergiu Ivanov will be working on unionmount translators during the Google Summer of Code 2009.


The application phase for the Google Summer of Code 2009 has already started. Please see our page about the GSoC for details of how to apply for your favorite Hurd project.


Neal Walfield has submitted a paper to EuroSys 2009 describing how resource management is done in viengoos:

Viengoos: A Framework for Stakeholder-Directed Resource Allocation.


General-purpose operating systems not only fail to provide adaptive applications the information they need to intelligently adapt, but also schedule resources in such a way that were applications to aggressively adapt, resources would be inappropriately scheduled. The problem is that these systems use demand as the primary indicator of utility, which is a poor indicator of utility for adaptive applications.

We present a resource management framework appropriate for traditional as well as adaptive applications. The primary difference from current schedulers is the use of stakeholder preferences in addition to demand. We also show how to revoke memory, compute the amount of memory available to each principal, and account shared memory. Finally, we introduce a prototype system, Viengoos, and present some benchmarks that demonstrate that it can efficiently support multiple aggressively adaptive applications simultaneously.


Samuel Thibault has implemented support for the PAE feature offered by modern x86 processors. This largely faciliates the deployment of GNU/Hurd systems running as a Xen domU on top of a standard Debian GNU/Linux Xen dom0, for example.


All five students who worked on the Hurd during the Google Summer of Code 2008 succeeded in their projects. For more information please see 2008 GSoC page. Congratulations to both students and mentors!


The GNU Hurd project has been accepted as a mentoring organisation for the Google Summer of Code 2008! If you are a student and looking for a job during the summer, take a look at our project ideas list--here's your chance to help improving the GNU Hurd including mentoring from our side and being paid compensation from Google's!

The application deadline has been extended to Monday, 2008-04-07, so there's more time for you students to hand in your Hurd applications.


A number of GNU Hurd developers will again (as already in the previous years) meet at the time of the FOSDEM 2008, which will take place from 2008-02-23 to 24 in Brussels, Belgium.

The page about FOSDEM 2008 has some details. Contact us if you are interested in meeting with us.


Stefan Siegl added support for IPv6 networking to the pfinet translator.


This year the GNU Hurd had again been assigned one slot within the Google Summer of Code program, which was assigned to the task design and implement libchannel, a library for streams. Carl Fredrik Hammar has been working on this task and recently posted a summary about the successful work he had been doing, but also gave an outline about how he intends to continue improving and extending it.


The GNU Hurd project will participate in this year's Google Summer of Code, under the aegis of the GNU project.

The following is a list of items you might want to work on. If you want to modify these task proposals or have your own ideas on what to work, then please don't hesitate to contact us on the bug-hurd mailing list or the #hurd IRC channel.

Please see the page GNU guidelines for Summer of Code projects about how to make an application and Summer of Code project ideas list for a list of tasks for various GNU projects and information about about how to submit your own ideas for tasks.


Neal Walfield and Marcus Brinkmann have written and submitted for publication A Critique of the GNU Hurd Multi-server Operating System and a position paper Improving Usability via Access Decomposition and Policy Refinement. Please follow the two preceding links to see the complete announcements. The authors welcome comments and discussion which may be directed to the <> mailing list for the Critique and to the <> mailing list for the position paper.

The abstract of the Critique:

The GNU Hurd's design was motivated by a desire to rectify a number of observed shortcomings in Unix. Foremost among these is that many policies that limit users exist simply as remnants of the design of the system's mechanisms and their implementation. To increase extensibility and integration, the Hurd adopts an object-based architecture and defines interfaces, which, in particular those for the composition of and access to name spaces, are virtualizable.

This paper is first a presentation of the Hurd's design goals and a characterization of its architecture primarily as it represents a departure from Unix's. We then critique the architecture and assess it in terms of the user environment of today focusing on security. Then follows an evaluation of Mach, the microkernel on which the Hurd is built, emphasizing the design constraints which Mach imposes as well as a number of deficiencies its design presents for multi-server like systems. Finally, we reflect on the properties such a system appears to require.

The abstract of the position paper:

Commodity operating systems fail to meet the security, resource management and integration expectations of users. We propose a unified solution based on a capability framework as it supports fine grained objects, straightforward access propagation and virtualizable interfaces and explore how to improve resource use via access decomposition and policy refinement with minimum interposition. We argue that only a small static number of scheduling policies are needed in practice and advocate hierarchical policy specification and central realization.


A number of GNU Hurd developers will again (as already in the previous years) meet at the time of the FOSDEM 2007, which will take place from 2007-02-24 to 25 in Brussels, Belgium. This wiki page has some details. Contact us if you are interested in meeting with us.


The GNU Hurd project will participate in this year's Google Summer of Code, under the aegis of the GNU project.

The following is a list of items you might want to work on. If you want to modify or extend these tasks or have your own ideas what to work on, please feel invited to contact us on the bug-hurd mailing list or the #hurd IRC channel.

Please see the page GNU guidelines for Summer of Code projects about how to make an application and Summer of Code project ideas list for a list of tasks for various GNU projects and information about about how to submit your own ideas for tasks.


Material from the Operating System topic during the Libre Software Meeting which took place this summer is available online. Included are slides and recordings of talks by Marcus Brinkmann and Neal Walfield about the Hurd/L4 port.


Marcus Brinkmann added a small web page describing the ongoing developments on the Hurd-to-L4 port.


Added a link to Patrick Strasser's the Hurd Source Code Cross Reference in all the "Source code" sections.


GNU/LinuxTag 2003 is now over and since there was a talk given about the Hurd, a demo GNU/Hurd machine running and the sale of Hurd t-shirts, Wolfgang Jährling decided to write a short summary of what happened there. Many thanks to Wolfgang Jährling, Volker Dormeyer and Michael Banck!


The tarball for Debian GNU/Hurd that Marcus Brinkmann made over the years has been discontinued in favour of Jeff Bailey's crosshurd package. To install Debian GNU/Hurd from now on, this package should be used. Another Debian system is required to be installed on the same machine. The GNU/Hurd installation guide has not been updated yet.


The GNU/Hurd User's Guide is now accessible through the Documentation section of the Hurd web pages.


Gaël Le Mignot, president of HurdFr, presented the GNU Hurd on 22 November 2002 at EpX in Paris. English slides and French slides of the talk are also available.


For one month now, the pthread implementation by Neal Walfield is part of the Hurd CVS source tree, and has been used to compile more software for the Debian GNU/Hurd archive. The lack of a POSIX compatible thread library (the Hurd was based on the cthread implementation that originally accompanied Mach) was a show stopper, and we are happy about the possibility to not only compile more applications, but also to start the work on migrating the Hurd source code to pthreads.


The Toronto Hurd Users Group meets again: The University of Waterloo Computer Science Club will be hosting talks on the GNU Hurd on October 26 by Marcus Brinkmann and Neal Walfield. There will also be a GnuPG keysigning before Marcus's talk. Please email Ryan Golbeck your GnuPG key so he can get everyone setup.

Marcus will talk about the Hurd interfaces. Neal will talk about about A GNU Approach to Virtual Memory Management in a Multiserver Operating System

Date: 26 Oct 2002

Time: 1330 (1:30pm EST) and 1500 (3:00pm EST)

Place: University of Waterloo, Math and Computers building, room MC 2066

More information can be found at UW CS Club website and at


A new article about the authentication server has been added to the web pages. It resembles the talk about the same topic which was given at the Libre Software Meeting, therefore the target audience is mostly programmers which want to learn about the details of authentication in the Hurd.

2002-10-03 2

Marcus Brinkmann speaks about the GNU Hurd at "Reflections | Projections 2002", the National Student ACM Conference at the University of Urbana-Champaign, Illinois. The conference is held on October 18-20.


The Hurd sources have stabilized again after a short period in which some of the interfaces were changed to prepare support of long files. All relevant filesystem and I/O interfaces have been modified to use 64 bit even on 32 bit systems.

In light of the small and patient user base, we decided to drop backwards compatibility and replace the interfaces instead extending them. This means that the binaries of the Hurd, the C library, and some other programs need to be replaced manually, all at the same time, followed by a reboot.

A detailed step-by-step procedure how to upgrade Debian GNU/Hurd is available on the Debian web site.

People not using a binary distribution need to do a full manual bootstrap. It is recommended to treat this as a cross-compilation case.


Various developers of the Hurd and people interested in it will meet at the Libre Software Meeting in Bordeaux on July 9-13. Neal Walfield, who is working on porting the Hurd to the L4 microkernel, will give a presentation about L4, the people from HurdFr will give an introduction to the Hurd, and another presentation about the Hurd will be given by Marcus Brinkmann. There might be additional talks about the Hurd and related topics.


We are pleased to announce version 1.3 of the GNU distribution of the Mach kernel, featuring advanced boot script support, support for large disks (>= 10GB) and an improved console.

This distribution is only for x86 PC machines. Volunteers interested in ports to other architectures are eagerly sought.

More information about GNU Mach 1.3 is available on the GNU Mach web page.


Finally, the transition from the stdio-based GLibC Application Binary Interface (ABI) to the libio-based GLibC ABI has been completed. The Debian GNU/Hurd binary distribution has resumed building packages again, and everything should be back to normal. Note that we have also switched to GCC 3.1 as our default compiler. Thanks to everyone who helped in making all this possible, and our apologize for any inconvenience we have caused you.


The "Linux and Unix User Group Heilbronn" (in Germany) is organizing a Debian GNU/Hurd installation party at 25 May 2002. In addition to that, Wolfgang Jährling will give a talk about usage of GNU/Hurd, common problems found in porting programs to GNU/Hurd and programming of extensions for the Hurd. It is a public event, so everyone is free to show up and participate.


We are currently finishing the transition from a stdio-based GNU C Library (glibc) to a libio-based one. This is the result of about five months of work we put into getting the system ready and, of course, the work that the glibc developers did to make glibc what it is.

This change will have various advantages, for example libio has been tested more extensively, as it is also used by most GNU/Linux systems for some time now. However, it also means a change in the Application Binary Interface (ABI) of glibc, thus you will need to reinstall an existing Debian GNU/Hurd system. Upgrading has not been tested at all, so better do not expect it to work. Also note that you will need to get some of the Debian packages from Please read the recent mailing list archives for details.

Important Note: As another temporary complication, the current installation tarball is available at a different place than usual.


Added the Hurd Hacking Guide to the documentation section. Thanks to Wolfgang Jährling for providing this introduction into GNU/Hurd and Mach programming!


We are pleased to announce version 1.3 of the GNU distribution of the Mach 3.0 interface generator `MIG'. It may be found in the file (about 145 KB compressed).

Diffs from version 1.2 are in (about 6 KB compressed, 15 KB uncompressed). Relative to version 1.2, version 1.3 contains only some minor fixes.

You need this tool to compile the GNU Mach and Hurd distributions, and to compile GNU libc for the Hurd.

Bug reports relating to this distribution should be sent to Requests for assistance should be made on

The md5sum checksum for this distibution is:

45c2b7456727d81dbd75f7152f8136fd mig-1.3.tar.gz


There is a new mailing list called Hurd-devel-readers. It is the read-only version of Hurd-devel.

Hurd-devel is a mailing list for detailed discussions of design and implementation issues in the GNU Hurd; it is an internal low-volume list restricted to the core developers of the Hurd. While the web-based archive of Hurd-devel has always been public, the new mailing list Hurd-devel-readers provides a convenient way to follow the discussion of the Hurd experts.

If you are a recipient of Hurd-devel-readers and want to follow up on the discussion, please reply to the Bug-hurd mailing list.


Pro-Linux has published a GNU/Hurd status report (in German). They will infrequently publish updates in the future.


The Toronto Hurd User Group meets: The University of Waterloo Computer Science Club will be hosting a talk on the Hurd and the Debian GNU/Hurd operating system. There will also be a gpg keysigning and installfest for GNU/Hurd following the talk. All are welcome, and gpg keys are not required.

Date: 26 Jan 2002

Time: 1400 (2pm EST)

Place: University of Waterloo, Math and Computers building, room 3001 (comfy lounge).

More information about this event at


An interview with Marcus Brinkmann was published by Pro-Linux (the interview is in German).