

Porting the GNU Hurd to the L4 Microkernel (2003) [pdf] - vezzy-fnord
https://www.cs.cmu.edu/~412-s05/projects/HurdL4/hurd-on-l4.pdf

======
sudioStudio64
There's been quite a few hurd articles lately. I wonder what the interest is?

Maybe focusing on only the drivers needed to make it run well in VMware or
openbox would improve the usability story. I've always thought it was
interesting, but a lot of people wrote it off after linux took off. I can't
help but think that hardware performance has improved to the point that the
supposed perf penalties of microkernels wouldn't matter.

~~~
vezzy-fnord
The performance penalties aren't intrinsic to microkernels, so much as to Mach
because of the heavyweight RPC mechanism and its elaborate port right and type
checking of messages. L4 calls are actually really fast precisely because such
policy is left to userland.

Debian GNU/Hurd runs really well under virtualization, btw.

~~~
sudioStudio64
I certainly don't want to rehash some of the arguments about it, because I
wasn't a fan of them at the time...but I was referring to the context switch
penalty of running multiple system level services is separate processes.

Mind you, I've always thought that argument was specious for several
reasons...but in a naive implementation breaking a kernel unto multiple
processes would have to have higher context switch overhead.

I've always though, though, that not everything needs to be process isolated,
and using more of a message pass system could probably overcome context switch
overhead in multiprocessor system's

EDIT: GOD DAAMN PHONE. I think that the reliability gains may more than make
up for any perf problems.

~~~
paxcoder
The toll on performance is the price of stability and modularity.

------
jmnicolas
Can't read the 84 pages now but if I'm not mistaken Hurd and L4 are both
(micro)kernels. I don't understand what it means to port a kernel to another
kernel.

It would have made sense for me if they had ported the GNU tools to work with
L4.

Can somebody enlighten me ?

~~~
rdc12
Hurd is the higher level services of a micro-kernel, but uses existing kernels
for the actual part in kernel space (normally GNU Mach).

So this would be replacing Mach with L4, retaining Hurd for the user space
operating system components.

~~~
jmnicolas
Thanks it makes sens now.

------
fithisux
I thought that this plan was abandoned.

~~~
jojo3000
Which is very unfortunately. It would be nice to have Hurd running on seL4!

~~~
vezzy-fnord
L4 was deemed too low-level to implement a proper object-capability
architecture, so it was canned.

GNU Mach is here to stay.

