From d463634b179b77b2802bf78110c3ce0a0d6ed64c Mon Sep 17 00:00:00 2001 From: antrik Date: Tue, 15 Mar 2011 17:17:11 +0100 Subject: FAQ/which_microkernel: rewrite Try to explain better what happened, and what it means for Hurd development. Also commented out the IRC discussion: I don't think it's appropriate here. Perhaps it could be included on a different page, or summarized here or elsewhere... --- hurd/faq/which_microkernel.mdwn | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) (limited to 'hurd/faq') diff --git a/hurd/faq/which_microkernel.mdwn b/hurd/faq/which_microkernel.mdwn index c5026afa..f6225188 100644 --- a/hurd/faq/which_microkernel.mdwn +++ b/hurd/faq/which_microkernel.mdwn @@ -10,13 +10,44 @@ License|/fdl]]."]]"""]] [[!meta title="What happened to the L4 / Coyotos / Viengoos microkernels?"]] -L4 was promising but happened to not be suitable for implementing a general-purpose operating system on top of it. See [[history/port_to_l4]] for the historical details. +Encountering a number of fundamental design issues with the Mach microkernel +(mostly with resource management), +some of the Hurd developers began experimenting with using other microkernels for the Hurd. -Coyotos is abandoned upstream +The first attempt was reimplementing the Hurd on the L4 (Pistachio) microkernel. +This got going around 2003/2004, +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. -Neal Walfield started working on a newly designed kernel called [[viengoos|microkernel/viengoos]]. Unfortunately, he currently lacks time and the projects it paused. +Following that, an attempt was started to use the kernel of the Coyotos system. +As Coyotos is an object-capability system througout, +the microkernel would obviously be more suitable for this purpose; +and it looked pretty promising in the beginning. +However, further investigations found +that there are some very fundamental philosophical differences +between the Coyotos and Hurd designs; +and thus this this attempt was also abandonned, around 2006/2007. +(This time before producing any actual code.) -In the meanwhile, people are thus continuing with [[microkernel/mach]]. +By now there were some new L4 variants available, +which added protected IPC paths and other features necessary for object capability systems; +so it might be possible to implement the Hurd on top of these. +However, by that time the developers concluded that microkernel design and system design +are interconnected in very intricate ways, +and thus trying to use a third-party microkernel will always result in trouble. +So Neal Walfield created the experimental [[Viengoos|microkernel/viengoos]] kernel instead -- +based on the experience from the previous experiments with L4 and Coyotos -- +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 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. + + -- cgit v1.2.3