It is a frequently asked question, which microkernel the Hurd should be based upon assuming that Mach is no longer considered state of the art, and it is well known that there has been a lot of discussion about this topic, and also some code produced, but then, years later, the Hurd is still based on GNU Mach.

Around the turn of the millenium, some of the Hurd developers began experimenting with using other microkernels for the Hurd, as they have been encountering a number of fundamental design issues with the Mach microkernel, mostly with respect to resource management problems.

At that time, L4 (Pistachio) was the prime candidate. A reimplementation of the Hurd on this microkernel looked promising, and got pretty far (running some simple POSIX programs, such as banner). However, over time some lingering design issues turned out to be fundamental problems: the original L4 is not suitable for building object-capability systems like the Hurd. Thus development was aborted in 2005.

During that process, Neal Walfield and Marcus Brinkmann started on a period of research on other microkernels, getting in deeper contact with other researchers. There was a lot of discussion, and a lot of good ideas produced, but a straight-forward port of the Hurd to such a modern microkernel (Coyotos, or the new L4 variants, for example) didn't seem feasible to them anymore: they found microkernel design and system design to be interconnected in very intricate ways, and this demanded design changes in the Hurd's core itself.

Based on this experience, the next step was to write an own microkernel instead, which Neal Walfield began doing with his experimental Viengoos project, for his research on resource management. Currently he works in another research area though, and thus Viengoos is on hold.

Note that while none of the microkernel research work is active now, the previous experiments already yielded a lot of experience, which will be very useful in the further development / improvement of the mainline (Mach-based) Hurd implementation.

For more details about this topic, please see our history page about the port to another microkernel.