Microkernel architecture?

Pedro Giffuni giffunip at asme.org
Tue Oct 7 22:56:48 PDT 2003

Gary Thorpe wrote:

> Yeah, an exokernel sounds cool...until you realize that every single
> application needs to be linked into libraries that implement an OS
> basically. What does that do for memory usage? How protected is the
> machine from malicious/errant applications? Security? IPC?

You can use tricks to make this issues irrelevant (dynamic preloading, stack
protection). That said I am not defending the Exokernel design, I'm just pointing out
that if the idea behind DragonFlyBSD is turning some of the kernel interfaces into
userland APIs we might as well look at some other systems that made it.

> A microkernel makes it possible to modularize the OS, but an exokernel
> sounds like it forces all the applications to be monolithic OS+app
> hybrids. The speed comparisons on the ExOS web site don't even use a
> particularly fast web server for BSD (or is NCSA now considered high
> performance as well as obsolete?).

The study is old, but it does look fair. It's rather funny, I just heard a linux
teacher around here saying that all the webservers should be implemented in the kernel

> Pedro Giffuni wrote:
> > This is off topic, (but just for reference and because there is not
> > technical-chat list ...)
> >
> > when you mentioned you wanted a userland VFS API, I recalled someone already did
> > that: in fact, they turned everything into libraries and made the kernel very
> > small... they called it an Exokernel:
> >
> > http://www.pdos.lcs.mit.edu/exo.html
> >
> > They invented softupdates, BTW :).
> I believe Sun funding some research into improving FFS and the resultant
> code first emerged on BSD:
> http://www.netbsd.org/Documentation/tune/5.html#a3
> http://www.netbsd.org/Documentation/misc/#softdeps
> http://www.mckusick.com/softdep/index.html
> http://www.usenix.org/publications/library/proceedings/usenix99/mckusick.html
> No mention of exokernels...was it used for the development?

Check well the reference for Kirk's work. In fact, not all the improvements have found
their way into the BSD kernel:




More information about the Kernel mailing list