[FoRK] [info] (highscalability.com) The Secret to 10 Million Concurrent Connections -The Kernel is the Problem, Not the Solution
Joseph S. Barrera III
joe at barrera.org
Mon May 20 14:42:50 PDT 2013
On 5/20/2013 2:27 PM, Stephen Williams wrote:
> I use MacOSX more than anything for desktop/laptop...
> I was going to use that as an example, but:
>> Mach's derivatives are the basis of the modern operating system
kernels in Mac OS X <http://en.wikipedia.org/wiki/Mac_OS_X> (which is
/*not*/ a microkernel^
<http://en.wikipedia.org/wiki/Mach_%28kernel%29#cite_note-apple-1> ) and
GNU Hurd <http://en.wikipedia.org/wiki/GNU_Hurd> (which /*is*/ a
Well... "Mach" means several things.
Mach 3.0 shipped with a Mach microkernel and (one or two) userspace
implementations of BSD 4.4. You could boot the Mach microkernel and then
it would load whatever you wanted, from the monolithic BSD userspace
implementation, to POE (a mini-unix-server I wrote), to the multi-server
BSD implementation that Dan Julin and the OSF/1 team worked on.
GNU Hurd is yet another user-space implementation of Unix that runs on
top of the Mach 3.0 microkernel. GNU Hurd is not itself a microkernel.
Mach 2.5 and earlier had roughly the same microkernel, but the rest of
Unix also lives in the kernel. Mach 2.5 was originally developed by
taking BSD and replacing each bit of core microkernel functionality (VM,
IPC, etc) and replacing it with Mach implementations.
Avie liked the VM implementation he wrote for Mach, and IPC, but not the
whole everything-else-has-to-be-in-userspace bits from Mach 3.0. So NeXT
and subsequently Apple use a derivative of Mach 2.5. I think Avie et.
al. ported various Mach 3.0 implementations into their Mach 2.5, e.g.
Rich Draves' reimplementation of Mach IPC.
More information about the FoRK