diff options
author | antrik <antrik@users.sf.net> | 2011-03-15 17:17:11 +0100 |
---|---|---|
committer | antrik <antrik@users.sf.net> | 2011-03-15 17:20:43 +0100 |
commit | d463634b179b77b2802bf78110c3ce0a0d6ed64c (patch) | |
tree | 3ec0619ace26b963f6bcd726fd57207ce1a6b663 /hurd | |
parent | 2ee8dc077fc9cbdcc997a2771139578dce140644 (diff) |
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...
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/faq/which_microkernel.mdwn | 41 |
1 files changed, 37 insertions, 4 deletions
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. + +<!-- --- @@ -79,3 +110,5 @@ IRC, #hurd, 2011-01-12. <antrik> manpower is not something that comes from nowhere. again, having something working is crucial in a volunteer project like this <antrik> there are no fixed plans + +--> |