DragonFly BSD
DragonFly kernel List (threaded) for 2003-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Microkernel architecture?


From: Gary Thorpe <gathorpe79@xxxxxxxxx>
Date: Fri, 10 Oct 2003 00:05:57 -0400



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.






[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]