Obsolete Research Dooms Author to Irrelevance
Ouch. Remember that no matter how expert you may be on some things, if you start from false premises, you're doomed from the start. Just caught this article over on Linux Journal entitled "Obsolete Microkernel Dooms Mac OS X to Lag Linux in Performance".
In the article, the author expounds at length on the nature of microkernels and their performance hits, and makes a very clear and unabashed claim that "the microkernel project has failed". Well, I don't know a great deal about microkernels, other than vague skimmings here and there. But what I do know, is that you don't say "Obsolete Microkernel Dooms Mac OS X to Lag Linux in Performance" and then let slip something like "I'm not sure how Darwin's drivers work...", as well as never providing any metrics, analysis, code, or proof to back up the headline's claim other than to beat up a theoretical microkernel strawman.
The interesting thing to me though, is that rather than read the article first, I read the comments. And the thing I saw was an enormous number of comments all pointing to Apple's Mach Overview, so almost instantly I was informed about the credibility of the article itself. When you have a hundred geeks telling you to RTFM after a lenghty article, it says something.
In particular, the Apple document says:
Mach 3.0 was originally conceived as a simple, extensible, communications microkernel. It is capable of running as a standalone kernel, with other traditional operating-system services such as I/O, file systems, and networking stacks running as user-mode servers.So, from what I gathered, this little blurb counters much of what the author actually claimed would slow OS X down. I may be mistaken on this, but it seems to be what everyone else was saying as well.
However, in Mac OS X, Mach is linked with other kernel components into a single kernel address space. This is primarily for performance; it is much faster to make a direct call between linked components than it is to send messages or do RPCs between separate tasks. This modular structure results in a more robust and extensible system than a monolithic kernel would allow, without the performance penalty of a pure microkernel.
So, whereas in another circumstance, this article might've been taken as Linuxite Anti-Mac-OS-X FUD (what's the world coming to? :) ), in this circumstance the article is just taken as an obvious demonstration of a lack of research. Other than a bit of a sensation when I saw the headline in my aggregator, the steam got let out of it almost instantly.
Lather, rinse, repeat, and apply to all other utterances and publications.