My favorite table:
Kernel Source Lines of Code (SLOC)
OKL4 13.8k
QNX Neutrino v6.3.2 23k
Linux Kernel 2.6.0 5.2M
Windows XP Kernel size unknown but totals at approx 40M
Windows Vista Kernel size unknown but totals at approx 50M
Modern microkernels are so small that they can be thoroughly debugged, or formally verified.[1] http://www.gelato.unsw.edu.au/IA64wiki/JamieLennox/QNXvL4?ac...
> https://en.wikipedia.org/w/index.php?title=QNX&oldid=7308275...
"In September 2007, QNX Software Systems announced the availability of some of its source code. [http://www.qnx.com/news/pr_2471_1.html]
On April 9, 2010, Research In Motion announced they would acquire QNX Software Systems from Harman International Industries. On the same day, QNX source code access was restricted from the public and hobbyists."
All I have found is a really old version that doesn't seem to have much in common with the current one.
https://github.com/tomga/genode/commit/c8a64b5c3465cde1723b2...
OKL4 Release 2.1
================
Date: 15 April 2008http://ts.data61.csiro.au/publications/papers/Heiser_10:iids...
Just one simple example: run "sample <process>" (where <process> is any Cocoa application) on OS X. Pretty much every thread will have an event loop powered by CFRunLoop, and they'll all be stuck in mach_msg_trap waiting for an event to occur.
Also, pretty much any sort of semi-complicated IPC on OS X is done over Mach IPC (e.g. passing a large bitmap copy-on-write from one process to another). Take a look at the ipc directory in the Chromium source, for example.