[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008, 2009 Free Software Foundation, Inc."]] [[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] [[meta title="Porting the Hurd to L4: Hurd/L4"]] There was an effort to port the Hurd from [[microkernel/Mach]] to the [[L4_microkernel_family|microkernel/L4]], mostly lead by Marcus Brinkmann and Neal Walfield. Even though there was progress, this port never reached a releasable state. Eventually, a straight-forward port of the original Hurd's design wasn't deemed feasible anymore by the developers, partly due to them not cosidering L4 suitable for implementing a general-purpose operating system on top of it, and because of deficiencies in the original Hurd's design, which they discovered along their way. Read the [[critique]] and a [[ng/position_paper]]. By now, the development of Hurd/L4 has stopped. However, Neal Walfield moved on to working on a newly designed kernel called [[microkernel/viengoos]]. Development was done in the `hurd-l4` module of the Hurd CVS repository. The `doc` directory contains a design document that is worth reading for anyone who wishes to learn more about Hurd/L4. Discussion have been held on the [[mailing_lists/l4-hurd]] mailing list, which is still the right place for [[next-generation_Hurd|ng]] discussions. One goal of porting the Hurd to L4 was to make the Hurd independend of Mach interfaces, to make it somewhat microkernel-agnostic. Mach wasn't maintained by its original authors anymore, so switching to a well-maintained current [[microkernel]] was expected to yield a more solid foundation for a Hurd system than the decaying Mach design and implementation was able to. L4 being a second-generation [[microkernel]] was deemed to provide for a faster system kernel implementation, especially in the time-critical [[IPC]] paths. Also, as L4 was already implemented for a bunch of different architectures (IA32, Alpha, MIPS; SMP), and the Hurd itself being rather archtecture-unaware, it was expected to be able to easily support more platforms than with the existing system. A design upon the lean L4 kernel would finally have moved devices drivers out of the kernel's [[TCB]]. One idea was to first introduce a Mach-on-L4 emulation layer, to easily get a usable (though slow) Hurd-using-Mach-interfaces-on-L4 system, and then gradually move the Hurd servers to use L4 intefaces rather than Mach ones.