diff options
authorThomas Schwinge <>2009-02-17 00:41:30 +0100
committerThomas Schwinge <>2009-02-17 00:41:30 +0100
commit4fd2c0b88c8c1fb15dd5d039ad87d5147ff6b350 (patch)
parent573c98c2e9752e4024bffd3540d8ee9b3bdeaf42 (diff)
hurd/history/port_to_l4: Extend.
1 files changed, 29 insertions, 2 deletions
diff --git a/hurd/history/port_to_l4.mdwn b/hurd/history/port_to_l4.mdwn
index 6504f1b5..6a17d1ff 100644
--- a/hurd/history/port_to_l4.mdwn
+++ b/hurd/history/port_to_l4.mdwn
@@ -15,8 +15,11 @@ 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. Read the [[critique]]
-and a [[ng/position_paper]].
+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
By now, the development of Hurd/L4 has stopped. However, Neal Walfield moved
on to working on a newly designed kernel called [[microkernel/viengoos]].
@@ -27,3 +30,27 @@ Development was done in the `hurd-l4` module of the Hurd CVS repository. The
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.