summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantrik <antrik@users.sf.net>2011-03-15 17:17:11 +0100
committerantrik <antrik@users.sf.net>2011-03-15 17:20:43 +0100
commitd463634b179b77b2802bf78110c3ce0a0d6ed64c (patch)
tree3ec0619ace26b963f6bcd726fd57207ce1a6b663
parent2ee8dc077fc9cbdcc997a2771139578dce140644 (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...
-rw-r--r--hurd/faq/which_microkernel.mdwn41
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
+
+-->