[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:
 > http://en.wikipedia.org/wiki/Mach_%28kernel%29
 >> 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^[1] 
<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 
microkernel).

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.

- Joe



More information about the FoRK mailing list