microkernels

Jecel Assumpcao Jr jecel@lsi.usp.br
Mon, 06 Sep 1999 17:37:21 -0300


I would like to report my subjective experience with microkernel
and macrokernel systems. I know that Faré is defending a third
alternative (the "no kernel") but I have no experience with that.

In 1985 I was asked to decompile the QNX microkernel OS (this
would be totally illegal in Brazil after 1987, but was ok back
then).

In 1988 I designed an object-oriented microkernel OS for 286
computers (I have made the sources available, but the lack of
comments and the mix of Portuguese and English in names make
these essentially useless for most people).

I have studied the sources and kernel design for Linux 0.99,
1.2 and 2.0, and I have used this system on a daily basis on
various hardware since 1994.

My subjective impression is that the 1984 QNX was easier to
evolve and performed better than the 1999 Linux. QNX was
rather more lightweight than my own ATOS. Even so, on a 6 MHz
286 machine we measured 12000 interprocess messages per
second (each one going twice through the microkernel via
two expensive traps - INT 51 followed by SegmentNotPresent).
Many Unix variants have problems getting this many NULL CALLs
on much more modern hardware.

I am no longer interested in microkernels since I have newer
tools to work with (reflection, adaptive compilation and so
on), but I still think it was a great way to design *practical*
OSes (check out the AmigaOS for another example).

Flame on,
-- Jecel