do not step out
micro machines
14/Dec/2005 | 12:04

Today's ramblings are just in case any Mac users read this article and the quote near the end, excerpted below:


"Dreams of the best kernel and the best GUI working together . . . No more beach balls of death."

The best kernel for what? Don't we need to define "best" before we can declare something so?

The author posits that Mac OS X's kernel should be a monolithic kernel instead of a microkernel, and that such a change would magically eliminate the issues that exist in Mac OS X hitherto.

Mac OS X's kernel, XNU, is based on Mach 3.0. Mach 3.0 was a microkernel, but XNU grafts on the networking stack and virtual memory system: under the strict sense of a microkernel, since these would-be servers are part of the XNU kernel, Mac OS X's kernel is technically a monolithic kernel, even if that determination might seem a bit pedantic.

But this is irrelevant. Spinning beach balls of death are not the result of Mac OS X originally being a microkernel-based architecture. What's responsible for that? Badly threaded apps. The Finder, for example, will not lose its penchant for throwing hissy fits if Apple starts compiling into the kernel your video drivers.

(We still remember that XNU isn't a microkernel, right? 'Cause it isn't.)

99% of users will notice no performance increase if Mac OS X were migrated to a more monolithic kernel (Joe User doesn't need to maximize SQL transaction performance), but they will get frustrated quickly at having to sit while their kernel recompiles every time there would normally be a minor framework update. As stated, tbe bottleneck isn't the kernel for most situations—and even in other situations, it's not always the biggest culprit—but badly written applications themselves.

I wish people would stop writing these articles. It's really getting old.


My big issue with the article was the statement that maybe the switch to intel was the right time to reengineer the whole freaking thing.

Uh, no. Maybe the fact that it's built on a microkernel architecture, and abstracting all hte hardware details away has allowed it to coexist between the Intel and PowerPC world since NeXT took over Apple.

Noone really believes that they started porting a few months before the announcement to developers. It's been in parallel development all along due to the ease of the abstraction layers in the darwin/mach/whatever subsystem.

But maybe I'm biased since I came from CMU.

posted by Shelby Davis on December 14, 2005 at 13:53


posted by Sebhelyesfarku on December 14, 2005 at 14:39


Spot-on observation. Switching CPU arch is non-trivial; switching CPU arch while re-engineering the entire OS that has been polished intensely over the previous five years takes "non-trivial" to an entirely different level.

posted by mikey-san on December 14, 2005 at 15:07

Mac OS X is not built on top of a microkernel. xnu is just as monolithic as Linux is.

posted by anonymous on December 14, 2005 at 15:27

Thanks to Mr Anonymous for making sure my mind didn't slip out from underneath me. Post edited to reflect.

posted by mikey-san on December 14, 2005 at 15:56