summaryrefslogtreecommitdiff
path: root/faq/which_microkernel.mdwn
blob: 3ceb315cb6a15dd493c6f912bf68331d010dfddb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
[[!meta copyright="Copyright © 2009, 2011 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!meta title="What happened with the Hurd ports to the OSKit Mach / L4 / Coyotos / Viengoos
microkernels?"]]

<!-- This page shares some text with history/port_to_another_microkernel.  -->

It is a frequently asked question, which microkernel the Hurd should be based
upon assuming that [[microkernel/Mach]] is no longer considered state of the
art, and it is well known that there has been a lot of discussion about this
topic, and also some code produced, but then, years later, the Hurd is still
based on [[GNU Mach|microkernel/mach/gnumach]].

Around the turn of the millenium, some of the Hurd developers began
experimenting with using other [[microkernel]]s for the Hurd, as they have been
encountering a number of fundamental design issues with the [[Mach
microkernel|microkernel/mach]], mostly with respect to
[[open_issues/resource_management_problems]].

At that time, L4 (Pistachio) was the prime candidate.  A reimplementation of
the Hurd on this microkernel looked promising, 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.

During that process, Neal Walfield and Marcus Brinkmann started on a period of
research on other microkernels, getting in deeper contact with other
researchers.  There was a lot of discussion, and a lot of good ideas produced,
but a straight-forward port of the Hurd to such a modern microkernel (Coyotos,
or the new L4 variants, for example) didn't seem feasible to them anymore: they
found microkernel design and system design to be interconnected in very
intricate ways, and this demanded design changes in the Hurd's core itself.

Based on this experience, the next step was to write an own microkernel
instead, which Neal Walfield began doing with his experimental
[[microkernel/Viengoos]] project, 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 research 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.

For more details about this topic, please see our history page about the
[[history/port_to_another_microkernel]].