From 4fd2c0b88c8c1fb15dd5d039ad87d5147ff6b350 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 17 Feb 2009 00:41:30 +0100 Subject: hurd/history/port_to_l4: Extend. --- hurd/history/port_to_l4.mdwn | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'hurd') 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 +[[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]]. @@ -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. -- cgit v1.2.3