Re:Linux is a MicroKernal? (was:is linux obsolete)

Bryn Paul Arnold Jones (bpaj@gytha.demon.co.uk)
Mon, 31 May 1999 23:35:37 +0100 (GMT)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, 30 May 1999, Michael B. Trausch wrote:
>
> Excuse my ignorance, as I'm only 16 and I haven't had the oppourtunity to
> take any CS related classes on OS design or anything -- but what is a
> monolithic kernel and microkernel, and what is the difference between the
> two, from a technical standpoint?
>

Ok... Linux is a monolithic kernel, there is one binary which has
everything in[1]. If one function needs to call annother, it can do so
directly, but there is usally a set interface which should be called and
lower level functions which shouldn't.

A microkernel is a very different thing, at the core is the microkernel,
which dosn't do very much at all, just message passing and memory
management is all. There are then userspace servers (which are priviliged)
which do everything else (networking, disk drivers, block IO, filesystems,
what have you). It's all tied together by the message passing...

The ironic thing is that the microkernel (in total) is larger than a
monolithic kernel...

Bryn

[1] the binary may never exist as a whole execpt in the memory of a
running box, this is the case with solaris[2], and linux with modules
loaded[3]
[2] the modules exist in directory structure and are loaded and linked
together at boot time (or shortly after).
[3] The modules really are linked into the running kernel when they are
loaded.
- --
Or words to that effect ...
PGP pubkeys from http://www.gytha.demon.co.uk/pubkey.asc.

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.0i for non-commercial use
Comment: Silly comment here ...
Charset: noconv

iQA/AwUBN1MOvt94IUtvfSqaEQJ/EACgtElGivFOBdwyTfeTGtbqpJTokPwAoL1f
4phX8QdgFku+NMT3Zh/ZzrKh
=sGun
-----END PGP SIGNATURE-----

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/