Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Porting the GNU Hurd to the L4 Microkernel (2003) [pdf] (cmu.edu)
40 points by vezzy-fnord on July 17, 2015 | hide | past | favorite | 14 comments


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.


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.


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.


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


So in a way micro is to RISC ̶C̶I̶S̶C what monolithic is to CISC ̶R̶I̶S̶C.


Umm... if anything I'd say it's the other way around.


Ha, right, I accidentally swapped the terms.


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 ?


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.


Thanks it makes sens now.


I thought that this plan was abandoned.


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


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

GNU Mach is here to stay.


The link is from August 2003.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: