Microkernel architecture?

Gary Thorpe gathorpe79 at yahoo.com
Thu Oct 9 21:05:57 PDT 2003



Pedro Giffuni wrote:

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.


There is nothing special about running applications in the priviledged 
mode of the processor (if it has any, and they will need this to do 
tasks typically relegated to an OS). Thats like saying AmigaOS is better 
than VMS....it might be for certain tasks, but unless you have some sort 
of inflexible embedded design you may need all those other features that 
a modern OS provides.



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
!!


How many commercial sites use TUX, Linux's in-kernel web server that is 
very much faster than the others for the platform? Some probably do, but 
most admins think that the risk introduced when bugs are found (and they 
will be found) outweigh any benefits. I would say the study is unfair, 
unless NCSA was particularly known as a speed demon among web servers in 
its time.

What happens when a trojan application is run on an exokernel OS? Can 
there be such a thing as priviledge seperation, since all apps have 
access to OS routines?




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:
http://www.ece.cmu.edu/~ganger/smallfiles.html


I see that the exokernel OS uses the softdep filesystem as its default, 
but the systems used to develop the first prototypes seem to be 
UNIX-based (circa 1995). I would have that a userland OS would have made 
it easier to develop and it is this which confused the association for me.

regards,

   Pedro.








More information about the Kernel mailing list