*BSD News Article 47994


Return to BSD News archive

Newsgroups: comp.unix.bsd.freebsd.misc
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!swidir.switch.ch!newsfeed.ACO.net!Austria.EU.net!EU.net!gatech!howland.reston.ans.net!torn!nott!uotcsi2!revcan!quantum!danh
From: danh@qnx.com (Dan Hildebrand)
Subject: Re: The Future of FreeBSD...
Message-ID: <95kb2y1z@qnx.com>
Date: Wed, 26 Jul 95 20:01:43 GMT
Organization: QNX Software Systems
References: <3uktse$d9c@hal.nt.tuwien.ac.at> <ck3xcVu00YUxABg5gY@andrew.cmu.edu> <3us0a8$l9m@er6.rutgers.edu> <3v0rk7$ac4@blob.best.net>
Lines: 51

In article <3v0rk7$ac4@blob.best.net>, Matt Dillon <dillon@best.com> wrote:
>
>    From a theoretical perspective, nobody has really written a real
>    microkernel yet.

I think many would argue that QNX qualifies as a true microkernel.  Even
the people who first coined the term "microkernel" agree that QNX is a
microkernel OS (Ira Goldstein and Paul Dale).  :-)

>    So far, the microkernels (including Mach) appear to
>    be at least as complex as their monolithic brothers and require
>    about as much work to port across platforms.

An examination of QNX will show an architecture MUCH simpler than that of 
many operating system.  One reason for this is that the processes around 
the microkernel that provide OS services exhibit a POSIX/UNIX personality 
directly, rather than attempting to be "personality neutral". As a result, 
a service-using process does IPC directly with a service-providing process, 
not through some additional levels of abstraction.  The resulting 
architecture is very "flat", and not layered heavily at all.

>    Just adding
>    a few more levels of subroutine call does not a microkernel make,
>    IMHO.

Agreed.

>    On the otherhand, I keep hearing people screaming about how inefficient
>    microkernels are.  There is nothing in the inherent design that requires
>    a microkernel to be any less efficient then a monolithic design, it is
>    only the *current implementations* you see in the field which are
>    inefficient, which I attribute simply to bad design irregardless of
>    whether it is a microkernel or not.  

The problem with attempting to make a comparison between a monolothic 
kernel and a microkernel OS, is that you can't compare the architectures 
alone, you invariably end up comparing the quality of implementation as 
well.  For a comparison to be meaningful, you need to locate "best of 
breed" examples of each approach and then make a comparison.

>    I think the point is pretty much moot, myself.  I see both monolithic
>    and microkernel designs heading for the same destination.

I'm not so sure.  Microkernels do distributed applications much nicer than 
monolithic kernels, given the orthogonal means by which both local and 
remote services accessed.
-- 
Dan Hildebrand (danh@qnx.com)               QNX Software Systems, Ltd.
http://www.qnx.com/~danh                    175 Terence Matthews
phone: (613) 591-0931 (voice)               Kanata, Ontario, Canada
       (613) 591-3579 (fax)                 K2M 1W8