What is a kernel?

Francois-Rene Rideau fare@tunes.org
Tue, 17 Aug 1999 15:32:18 +0200

> Is Farè really pro monolithic kernel design? Possibly. He is definitely
> carrying pro arguments.
I am against microkernel, that's different.
My position, that I've developed in the past,
is against any kernel whatsoever.
Search the mailing-list archive for "no-kernel" or "no kernel".

> I understand the reason a monolithic kernel would be easier to make
> efficient [...].

> One important point in TUNES is fine grain modularity. I don't see how a
> monolithic kernel could be fine grained.
Again, that's a matter of looking at things from the right point of view.
We want modularity _at the high-level_,
and efficient folding _at the low-level_.
This means modular high-level objects in a suitable high-level language
compiled into efficient low-level code at the binary level,
without harmful runtime barrier to cross.
At the high-level, it's modular.
At the low-level, it looks like the whole TUNES universe
runs into a all-encompassing monolithic "kernel".

> Wouldn't that be no kernel at all,

> or even, dependent on our definition of kernel, a micro kernel with
> some framework added.
Well, in as much as the CPU architecture forces upon us things like
privilege levels as soon as we want to use paging,
you might look at it this way.
But there could be many services that don't care the least about current
CPU privilege and don't force a barrier switch.

> But technically you could have the efficiency of a huge static chunk of
> program with the modularity of a micro kernel design.
Repeat after me:
the micro kernel doesn't help with high-level modularity in any way.
microkernel is about uselessly multiplying low-level barrier crossings.

> What if you had a monolithic kernel and wanted to make it into a micro
> kernel.
Then I'd recommend a psycho-analysis.

Once again:
micro kernel isn't about high-level modularity, but low-level barriers.
High-level modularity is gained by using a high-level modular language,
such as CommonLISP (Genera), SML (Fox), Modula-3 (SPIN),
Oberon (Native Oberon), Erlang (Erlang/OTP), etc.


[ "Faré" | VN: Уng-Vû Bân | Join the TUNES project!   http://www.tunes.org/  ]
[ FR: François-René Rideau | TUNES is a Useful, Nevertheless Expedient System ]
[ Reflection&Cybernethics  | Project for  a Free Reflective  Computing System ]
The more one knows, the more one knows that one knows not. Science extends
the field of our (meta)ignorance even more than the field of our knowledge.