The paper doesn't mention QNX at all. QNX is similar to early L4, but they've taken slightly different paths. L4 got rid of "long message passing", in favor of shared memory and interrupt-like IPC. This is great for the kernel - no copying delays and no buffering problems. But it means that communicating processes have to share some memory pages and cooperate properly. If the shared memory page is something like a ch…
How do these compare to Mach IPC in OSX?
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...