Subject: Re: OT: apple's marketing is just insolent
To: None <netbsd-users@netbsd.org>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: netbsd-users
Date: 05/19/2002 15:12:06
On Sun, May 19, 2002 at 05:49:52PM -0400, Charles Shannon Hendrix wrote:

 > Mach, according to it's creators, is a microkernel.  Maybe it's not
 > "micro" sized any more, but it's still a microkernel until another name
 > is given to it.  In any case, I was just pointing out that MacOS X
 > is not Mach.

Well, the kernel certainly isn't BSD.

According to some technical presentations I've seen about the OS X kernel,
given by Apple engineers, it's roughly like this:

	* High-level networking stuff is BSD.

	* File system stuff is BSD.

Each of these subsystems is protected by its own "funnel" (which is
roughly a "giant lock").

Everything else is Mach:

	* VM is Mach (and not BSD's Mach-derived VM)

	* Task/thread handling is Mach (i.e. not BSD processes)

	* Mach traps are provided in addition to Unix system calls.

	* Kernel is heavily multi-threaded, and has fine-grained locking
	  (their device driver framework relies heavily on this).

I.e. the interesting stuff that make the operating system what it is comes
from Mach.  Now, note that many Mach implementations have a lot of BSD
code in the high parts of the kernel.  In other worse it's more likely that
any such BSD code in the high parts of the kernel is an artifact of history
rather than the fact that "OS X is BSD".

Saying that OS X is BSD like saying that Digital Unix is BSD.  You would
be wrong in both cases.  Both are Mach-based kernels which happen to have
a bunch of BSD code in them.  And both happen to have what amounts to a
BSD userland.

 > Apple is not using Mach 3.0 in the traditional microkernel way.  Mach is

Almost NOONE uses 3.0 in the microkernel way, because performance is
too bad if you do so.

 > not layered, it's integrated together with the other pieces of the system.

...much like other Mach-based kernels are (like Digital Unix).

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>