How much of microkernel?

Matthew Dillon dillon at
Tue Aug 22 11:08:07 PDT 2006

:I think L4 and Mungi have proven that doesn't have to be the case these 
:         Thomas E. Spanjaard
:         tgen at xxxxxxxxxxxxx

    Well, I am not an expert on L4 or Mungi, but I can count cpu cycles, 
    and having to do a context switch eats a *lot* of computer cycles,
    and having to do a context switch which involves a change in the
    protection map eats even *more* computer cycles.  So many, in fact,
    that the overhead often exceeds the overhead of the operation one is
    trying to execute.

    One then winds up in a situation where one must hack the code to pieces
    to make it efficient... to reduce the number of context switches that
    occur.  For example, a number of people have advocated that the TCP stack
    be moved to userland.  To my mind this is *NOT* micro-kernelish, as one
    then has no protection between the userland application and the networking
    stack.  Shifting the work around without introducing new protection
    realms is NOT a microkernel architecture.  It offers no additional
    reliability or debuggability to the system, and makes the code such a
    huge mess that it becomes unmaintainable.

    Now, I am not against microkernel architectures... I've written several
    embedded OSs that use such architectures.   But the plain fact of the
    matter is that there is a performance/protection trade-off and you have
    to be willing to pay the price to get the protection.


More information about the Kernel mailing list