Re: RFC: Memory protection in modules (stability)

Michael Poole (
Wed, 2 Apr 1997 09:52:50 -0500 (EST)

On Tue, 1 Apr 1997, Derrik Pates wrote:

> If we were only dealing with iX86 and were never gonna grow out of it,
> this might not be a bad idea. BUT, as far as I know, only iX86 provides
> those extra protection levels in the middle.
Actually, quite a few other processors have multiple protection
rings; one book I have mentions one with 16 protection rings (IIRC). But
your point is otherwise correct; some processors do only have two rings,
and we should aim for that least common denominator for support.

> From my familiarity with microkernel OSes, the microkernel starts, and the
> real OS itself starts on top of that, which would make Linux not qualify
> as a microkernel - it is called by LILO or from a 'cat'ed image, and it's
> the only kernel - it does all its own scheduling, resource handling, etc.
> Case in point, the Mac PPC port of Linux running atop OSF's Mach
> microkernel.
What you are roughly describing is often, but not always, how a
microkernel is used. The microkernel loads, and then loads a server that
emulates another OS (Linux, or some BSD variant). However, this is not
necessarily the case; Hurd, for one, provides many servers for the various
things (SCSI access, network card driver, network protocols, etc.) that
native Hurd applications talk to directly. It is possible to run MkLinux
or what-have-you alongside these (AFAIK), but the microkernel doesn't load
a "real OS" on top of itself; it loads a (to most purposes except
performace) identical port of the OS to the microkernel and runs that.