Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Monolithischer Kernel vs. Mikrokernel

32 views
Skip to first unread message

Wolfgang Jacobs

unread,
Sep 23, 2002, 8:59:39 PM9/23/02
to
From: Wolfgang Jacobs <wolfgan...@smail.inf.fh-rhein-sieg.de>
Newsgroups: comp.os.research
Subject: Monolithischer Kernel vs. Mikrokernel
Organization: RHRZ - University of Bonn (Germany)
Approved: comp-os-...@ftp.cse.ucsc.edu

BABELFISH TRANSLATION BELOW:

Hallo,

beschaeftige mich gerade mit A. S. Tanenbaums "Moderne Betriebssysteme"
und habe mir auch einige seiner alten Postings ueber Google angesehen.
Sowohl im Buch als auch in seinen Postings propagiert er Mikrokernel als
moderner und fuer die Zukunft erfolgreicher.

Mir ist jedoch kein Mikrokernel-basiertes OS bekannt, dass sich in
irgendeiner Weise so richtig durchgesetzt hat. Mach und Minix sind mir
zur Zeit sowieso die einzig bekannten.

Ich habe jetzt zu dem Thema einige Fragen:

Hat jemand Informationen ueber weitere Mikrokernel-basierte Systeme?

Wird heute immer noch streng zwischen Mikro- und Monolithischer-Kernel
unterschieden oder gibt es mittlerweile weitere Einteilungen?

Ist es theoretisch nicht moeglich, Linux derartig zu "verschlanken", dass
es als Mikrokernel durchgeht? Man koennte doch das meiste modular
einbinden, oder?

Ich hoffe ich bin hier nicht OT! Wuerde mich freuen, wenn jemand etwas
daruber weiss.

Gruss

wolle


TRANSLATION:

Hello, employ me straight with A. S. Tanenbaums "modern trend
operating systems" and also some his old Postings over Google
regarded. Both in the book and in its Postings he publicises
Mikrokernel as more modern and for the future more successfully. Me
however no Mikrokernel based OS is well-known that in any way
interspersed itself so correctly. Mach and Minix are me at present
anyway those only admitted. I have now to the topic some questions:
Does someone have information about further Mikrokernel based systems?
Today still strictly between micro and monolithic Kernel or does give
is it differentiated meanwhile further organizations? Is it
theoretically not possible, Linux so to "slim" that it goes through as
Mikrokernel? One could merge most nevertheless modular, or? I do not
hope I am here OT! Me would make happy, if someone knows somewhat more
daruber. Greeting

wolle
--
Es ist immer ein wenig verwirrend, wenn der falsche Mann die richtigen
Worte sagt.
Norman Mailer

David A. Caabeiro

unread,
Sep 24, 2002, 7:58:17 PM9/24/02
to

> Does someone have information about further Mikrokernel based systems?

Check
QNX: www.qnx.com
VSTa: www.vsta.org

I recommend you get qnx's arch. manuals.

Regards,
David.

Wolfgang Jacobs

unread,
Sep 26, 2002, 2:50:58 PM9/26/02
to
Hello,

I am very sorry! I didn't realise that this is a english speaking group.
Hm, there is no "de" in its name... So I must have been a little bit
stupid...

The babelfish translation is very bad. So I will try it again in English!

At the moment I am dealing with A. S. Tanenbaum's "Modern Operating
Systems" and I have read some of his old usegroup articles using Google.
As well in his postings and his book he says that Microkernels are more
modern and will be the future of modern operating systems.

Well, I do not know any micro-kernel-based OS which has become that
popular. The only micro-kernel-based OS I know are Mach and Minix.

So I have some questions:

- Does anybody have some informations about further micro-kernel-based OS?

- Is there still a strong differentiation between microkernels and
monolithic kernels? Are there more classifications?

- Isn't it possible - in theory - making Linux more slim that Linus could
be something like a microkernel? I am thinking about putting the most out
of the kernel and use that stuff as modules.

I hope I am OT.

Yours,

Wolfgang Jacobs

P. S.: Thank you Mr. David A. Caabeiro! I will read it carefully.

Marven Lee

unread,
Sep 29, 2002, 3:23:41 PM9/29/02
to

Wolfgang Jacobs wrote...
> Hello,

Hi!

> Well, I do not know any micro-kernel-based OS which has become that
> popular. The only micro-kernel-based OS I know are Mach and Minix.
>
> So I have some questions:
>
> - Does anybody have some informations about further micro-kernel-based OS?

See later in this post for a list of some of the microkernels out there.

> - Is there still a strong differentiation between microkernels and
> monolithic kernels? Are there more classifications?

Yes, microkernels try to implement as much as possible as
seperate user-space server processes and require some form
of message passing for applications to request their services.

The microkernel acts as the glue code to link server processes
and applications together by implementing some sort of
message passing.

There are different ways of message passing such as copying
the message across or using shared memory.

There are also two different execution models, an active-object
model and a passive-object model like there is in the object-oriented
world. Either you have servers with threads that wait for incoming
messages then perform the necessary actions or you allow a client
thread to cross or migrate into a server process.

> - Isn't it possible - in theory - making Linux more slim that Linus could
> be something like a microkernel? I am thinking about putting the most out
> of the kernel and use that stuff as modules.

The modules and device drivers would still all go into the kernel part
of the address space, therefore there is no protection between modules.
Also there would still not be a need for message passing.

So it would still be a modular monolithic kernel.


Some of the microkernels out there...


Chorus OS

Chorus OS was a microkernel developed in the 1980s. It
was started as a research project in distributed systems at
the French national computer science research institute. Later
it became a commercial operating system supported by
Chorus Systemes. Sun Microsystems must have got their
hands on it and probably supported it for a few years, now
it is unsupported and Sun have released the source code
for it. Links to the source code and documentation for
Chorus OS can be found at the following page...

http://www.experimentalstuff.com/Technologies/ChorusOS/index.html

>From the little I know about Chorus OS I sense that it feels like
a European version of Mach. Both Mach and Chorus OS seem
to be considered as first generation microkernels.


QNX

QNX is probably the most well known successful microkernels.
There is some very good documentation on their website that
describes the system architecture as well as a programmer's
guide and library reference. Go to the following page...

http://www.qnx.com/developer/docs/momentics_nc_docs/neutrino/index.html

There is also a paper "An Architectural Overview of QNX"
by Dan Hildebrand but I can no longer seem to find it anywhere.
You may also want to look through archived posts of this
newsgroup on Google for any mention of QNX.


L4

L4 is a microkernel that has been getting some attention over
the past few years mostly because it concentrates on being
as minimal a kernel as possible and is said to have fast
context switching. It is notable for using the x86 processor's
segmentation facilities to eliminate the context switch costs
of reloading the page directory register and flushing the TLBs.
It does this by creating small segmented address spaces
within a larger address space and placing drivers in these
small address spaces.

More information can be found at...

http://l4ka.org/

and the DROPS - The Dresden Real-Time Operating System Project,
which uses L4 as the microkernel can be found at...

http://os.inf.tu-dresden.de/drops/

Quite a few microkernels over the past decade have used
a passive-object model instead of an active-object model.
Instead of having a server thread wait for incoming messages
with a Receive() system call, the passive-object model removes
the need for a server thread. Instead the client thread crosses
into the server process and starts running in the server process
at an entry point defined by the server. This will likely require
a stack in the server for the thread to use.

This is known by different names such as cross-domain calls,
LRPC or migrating threads depending on the OS.

A structure in the kernel containing a minimal amount of context
will be needed for each server/process a thread crosses into.
This will keep a record of such things as the previous process ID
and return instruction and stack pointers. This is usually called
an activation (probably similar to the activations in Scheme language
but I don't know much about it). Some OSes call the "activations"
"threads" and the "thread" a "shuttle".

Migrating Threads have been implemented in Mach3.0. Some
interesting papers you might want to read are "Evolving Mach3.0
to a Migrating Thread Model" and "Microkernels Should Support
Passive Objects", both of which can be found at...

http://www.brynosaurus.com//pub.html


Two other microkernels that use a passive-object model include...

Spring Nucleus : A microkernel for objects
http://research.sun.com/techrep/1993/abstract-14.html

The Pebble Operating System
http://www.bell-labs.com/project/pebble/

There are others out there.

AmigaOS

AmigaOS is another operating system that some consider
to be a microkernel. It doesn't have any memory
protection or clearly defined protection domains which
some would consider a requirement of a microkernel.
It is certainly a modular operating system. It uses an
active-object model using message passsing to call
functions in its device drivers. It uses and a passive-object
model using a jump table of function pointers (basically a
function call and no message passing) for the libraries.

The libraries aren't really libraries as used in other
OSes, they are more like operating system components
that complement the device drivers.

Two of the more important libraries are...

"exec.library" - The real kernel, handles tasks, interrupts,
scheduling, memory management and IPC. A bit like
the Memory Manager in Minix or the Process Manager
in QNX.

"dos.library" - The filesystem. Implements the concept
of a Process and functions to read and write files. Sends
messages to the device drivers to read and write the
actual devices. A bit like the Filesystem in Minix.

See, they might be called libraries but they're more
like passive-object model servers in a microkernel OS.

NEC Citeseer is an online library of computer science
research papers which can be downloaded in different
formats such as .pdf, .ps and .html. I'm sure it has
plenty of papers on microkernels.
http://citeseer.nj.nec.com/cs

Hope it helps
Marv


Piercarlo Grandi

unread,
Sep 29, 2002, 3:23:43 PM9/29/02
to

>>> On 26 Sep 2002 10:50:58 -0800, Wolfgang Jacobs
>>> <wolfgan...@smail.inf.fh-rhein-sieg.de> said:

wolfgang.jacobs> At the moment I am dealing with A. S. Tanenbaum's
wolfgang.jacobs> "Modern Operating Systems" and I have read some of his
wolfgang.jacobs> old usegroup articles using Google. As well in his
wolfgang.jacobs> postings and his book he says that Microkernels are
wolfgang.jacobs> more modern and will be the future of modern operating
wolfgang.jacobs> systems.

In theory yes. In practice modern operating systems don't have much of a
future :-(, even if they have quite an interesting past.

wolfgang.jacobs> Well, I do not know any micro-kernel-based OS

What is a microkernel OS? That's not so obvious. It may be an OS whose
source or object code is highly modular, or an OS that is internally
organized as independent protection domains, or both, with the end
result being that only a very small part of it is always required.

I personally tend to consider the independent protection domains the
more important aspect...

wolfgang.jacobs> which has become that popular.

This is in part because developers and end users like to regard
operating systems as black boxes, and a highly modular kernels (and
usually microkernels are highly modular) can be slower or more
complicated to deploy than a monolithic one.

Same for applications and libraries, BTW (and a kernel is a library).

wolfgang.jacobs> The only micro-kernel-based OS I know are Mach and
wolfgang.jacobs> Minix.

It is debatable whether Mach is a microkernel-based OS, because lots and
lots of stuff are part of the microkernel.

However, there is at least one microkernel OS which continues to have
some commercial success, and that's QNX (which is a descendant of
Thoth), and Minix BTW somewhat resembles QNX.

There have been many other microkernel OS designs, mostly capability
based research OSes. One of the most intesting of them is KeyKOS, and it
even became a commercial product for a while, and it has evolved into
EROS, which looks like having _some_ commercial reality.

KeyKOS stuff used to be very difficult to find, fortunately there are
now a few relevant web sites; a Google search for 'KeyKOS' will return
the most interesting links.

wolfgang.jacobs> - Isn't it possible - in theory - making Linux more
wolfgang.jacobs> slim that Linus could be something like a
wolfgang.jacobs> microkernel? I am thinking about putting the most out
wolfgang.jacobs> of the kernel and use that stuff as modules.

Yes, but deployability then suffers. Linux modules do indeed make
deployability somewhat harder.

Morever this only would make the OS more _modular_; what about
independent protection domains inside the OS? One would have to
implement in-kernel cross-domain communications, in order to assign each
module (or some group of modules) a distinct protection domain.

Designing that is not a trivial task. Both shared memory and message
passing have drawbacks, and control passing, while occasionally
mentioned (some variant of it was present in Elmwood), is mostly
forgotten.

However I suspect that some better facility for modularization will need
to become part of Linux, because "Linus does not scale".

Currently even when Linux is deployed as a relatively small bootable
core and a lot of modules, the source usually is actually part of the
same monolithic package, which has grown many many times in size in the
past ten years (I remember when Linux commented that the source package
no longer would fit on a floppy; it's now over 30MB); it is a
significant burden to update all the various bits in that package for a
new Linus kernel release.

If there was an in-kernel communication facility to allow the
development of truly independent modules to the Linux kernel, in
particular device drivers, the ``official'' Linux source tree could be
shrunk significantly.

However this would require, more then a mechanism for independently
developed modules to interface with the ``core'', that the interfaces
available via that mechanism be stable, and Linus has made it very clear
that he does not want to guarantee the stability of internal Linux
interfaces.

I surmise he shall have to guarantee some sooner or later, to avoid
continuing to be buried alive in patches.
.


David A. Caabeiro

unread,
Sep 29, 2002, 3:23:45 PM9/29/02
to
> At the moment I am dealing with A. S. Tanenbaum's "Modern Operating
> Systems" and I have read some of his old usegroup articles using Google.
> As well in his postings and his book he says that Microkernels are more
> modern and will be the future of modern operating systems.

This is a so called 'religious war', in which its contenders will never
agree...

> Well, I do not know any micro-kernel-based OS which has become that
> popular. The only micro-kernel-based OS I know are Mach and Minix.

If you followed the links I gave you, you'll find out that QNX is probably
the (only?) serious commercial microkernel... quite popular specially
in embedded development.

> - Does anybody have some informations about further micro-kernel-based OS?

Sure... check some of these:
http://os.inf.tu-dresden.de/L4/
Here I'd also recommend you take a look at Liedke's papers for further
ideas in microkernel design...
http://www.openblt.org/
http://www.sun.com/chorusos/

> - Is there still a strong differentiation between microkernels and
> monolithic kernels? Are there more classifications?

Current monolithic (ie. Linux, WindowsNT, etc). kernels tend to use a
modular
approach (pluggable drivers, etc). Still, drivers share kernel space, so
they can't be
considered microkernels..

> - Isn't it possible - in theory - making Linux more slim that Linus could
> be something like a microkernel? I am thinking about putting the most out
> of the kernel and use that stuff as modules.

IIRC there was a project on that... look for mkLinux in your favourite
search engine.

> I hope I am OT.

Guess you hope *not* to be OT ;-)

> P. S.: Thank you Mr. David A. Caabeiro! I will read it carefully.

Hope you've gotten some good reading for the weekend ;-)

Regards,
David.

--
Reply: replace 'nospam' with 'david_caabeiro'

comp.lang.c FAQ: http://www.eskimo.com/~scs/C-faq/top.html
comp.lang.c++ FAQ: http://www.parashift.com/c++-faq-lite/
Online book reviews: http://www.accu.org/bookreviews/public

Gilles Maigne

unread,
Oct 25, 2002, 3:13:08 PM10/25/02
to
Marven Lee wrote:

Hello,

>
>
> Some of the microkernels out there...
>
>
> Chorus OS
>
> Chorus OS was a microkernel developed in the 1980s. It
> was started as a research project in distributed systems at
> the French national computer science research institute. Later
> it became a commercial operating system supported by
> Chorus Systemes. Sun Microsystems must have got their
> hands on it and probably supported it for a few years, now
> it is unsupported and Sun have released the source code
> for it. Links to the source code and documentation for
> Chorus OS can be found at the following page...
>
> http://www.experimentalstuff.com/Technologies/ChorusOS/index.html
>

I would like to complement information you provided about Chorus.
First Chorus is still alive and supported by Jaluna. Jaluna is a
new company founded by the team who developped the Chorus RTOS.

Unfortunatly, the open source code delivered by SUN
can not be built. So I would not advice to use it. If people are interested
in Chorus, they should wait until the begining of the next week.
At that time, Jaluna-1 an open source product (based on the open source
released by SUN) including :

- C5 Micro-kernel (A new version of Chorus micro-kernel)
- Posix real-time personality
- A cross-developmemnt environment for Linux and Solaris.

will be available on our WEB site http://www.jaluna.com/


Gilles.

Eric Dujardin

unread,
Nov 28, 2002, 7:47:23 PM11/28/02
to
Hello Wolfgang,

Sorry my german is not good enough, so I answering to the babelfish
translation. Just hope it is not too far from the original ;-)

There are some living examples of microkernel-based systems. MacOS X
is the most famous of them. It uses Mach, which you already mentionned;
the GNU Hurd also uses Mach, as did OSF/1.I believe BeOS also had its
own microkernel. Regarding Linux, one of the early PowerPC implementations
was also based on Mach. Finally, (advertisement !) our RTOS Jaluna-1 is
micro-kernel based. It relies in fact on the latest version of the Chorus
micro-kernel, with a FreeBSD-based Unix-like kernel layered on it.
The sources of Jaluna-1 are dowloadable from sf.net/project/jaluna, and
some micro-kernel literature is on our website at
http://www.jaluna.com/developer/biblio.html.

Hope this helps,

Eric Dujardin


firstname dot lastname at jaluna dot com

Wolfgang Jacobs

unread,
Nov 30, 2002, 6:01:50 PM11/30/02
to
Hi Eric and all the others!

Eric Dujardin <seem...@nospam.net> wrote:

> Hello Wolfgang,
>
> Sorry my german is not good enough, so I answering to the babelfish
> translation. Just hope it is not too far from the original ;-)

I am very sorry, that I was posting in German. I thought I was posting
into the german group. I was reading it before. Next time I will take a
little bit more care.
So later I posted it in english again.



> There are some living examples of microkernel-based systems. MacOS X
> is the most famous of them. It uses Mach, which you already mentionned;
> the GNU Hurd also uses Mach, as did OSF/1.I believe BeOS also had its
> own microkernel. Regarding Linux, one of the early PowerPC implementations
> was also based on Mach. Finally, (advertisement !) our RTOS Jaluna-1 is
> micro-kernel based. It relies in fact on the latest version of the Chorus
> micro-kernel, with a FreeBSD-based Unix-like kernel layered on it.
> The sources of Jaluna-1 are dowloadable from sf.net/project/jaluna, and
> some micro-kernel literature is on our website at
> http://www.jaluna.com/developer/biblio.html.

Many thanks to you and the others for all the interesting information!
I wanted to post also a reply to the others but my newsserver deleted
the messages very early so I couldn't read them again. I think I have to
look for another server.

You all helped me a lot in understandig the (dis)adventages of micro-
and monolithic kernels!

Bye,

wolle

--

Es ist immer ein wenig verwirrend, wenn der falsche Mann die
richtigen Worte sagt.

(Norman Mailer)


Markus Elfring

unread,
Jan 2, 2003, 12:31:16 AM1/2/03
to
A lot of information is available about this topic. I point to a few things.

1. Discussion about the subject "Hintergründe der GNU-Hurd Entwicklung" in the newsgroup "de.comp.os.unix.discussion" or in other goups.
http://www.gnu.org/software/hurd/

2. An interesting disussion with different or opposite opinions between Linus Benedict Torvalds and Andrew S. Tanenbaum
http://www.oreilly.com/catalog/opensources/book/appa.html

3. A book about modern operating systems
http://www.prenhall.com/divisions/esm/app/author_tanenbaum/custom/mos2e/

4. History and background of Linux development
http://groups.google.de/groups?group=alt.os.linux&selm=345E7AD3.1FFB234A%40swbell.net

Markus Elfring

unread,
Jan 10, 2003, 9:07:03 AM1/10/03
to
Another example:
The Amoeba Distributed Operating System
http://www.cs.vu.nl/pub/amoeba/amoeba.html

Peter da Silva

unread,
Jan 10, 2003, 9:07:05 AM1/10/03
to
In article <3e13cea4$1...@news.ucsc.edu>,

Markus Elfring <Markus....@web.de> wrote:
> 2. An interesting disussion with different or opposite opinions between Linus Benedict Torvalds and Andrew S. Tanenbaum
> http://www.oreilly.com/catalog/opensources/book/appa.html

Man, there's a blast from the past.

--
I've seen things you people can't imagine. Chimneysweeps on fire over the roofs
of London. I've watched kite-strings glitter in the sun at Hyde Park Gate. All
these things will be lost in time, like chalk-paintings in the rain. `-_-'
Time for your nap. | Peter da Silva | Har du kramat din varg, idag? 'U`


0 new messages