Hypercritical


A kernel of truth

Stop, children, what’s that sound?

There's been a lot of talk about the Mac OS X kernel in the past few months. When Avie Tevanian left Apple in March, there was much speculation that Apple had plans to abandon the Mach microkernel that underpins Mac OS X, and that Avie helped to develop many years ago. There were two lines of reasoning to support this, both pretty silly.

The first was that, with Avie out of the picture, Apple was finally free to remove the Mach albatross from around its neck and switch to a better kernel. This scenario doesn't hold up to much scrutiny. Apple is not the kind of company that would intentionally handicap its flagship software product in order to avoid hurting someone's feelings. With the possible exception of Steve Jobs himself, no one at Apple gets that kind of kid-gloves treatment.

The second theory is that Apple decided to abandon Mach first, which made Avie so upset that he decided to leave the company. This is perhaps the least likely explanation for Avie's departure. Avie's career path is not mysterious or odd, and it leads directly to his departure.

As a student, Avie helped develop Mach. Steve Jobs recruited him and he began his career at NeXT, where the NeXTSTEP OS was also based on a Mach kernel. When Apple bought NeXT and Jobs took over Apple, Avie was put in charge of the Mac OS X effort. After the launch of Mac OS X and a few follow-up releases, Avie was promoted to a position with the words “chief” and “officer” in the name, presumably as a reward for his successful stewardship of the Mac OS X program. Finally, Avie cashed in several million dollars worth of Apple stock options and left the company to "pursue other interests." Now he's on the board of directors for Tellme Networks, a pre-IPO telecom startup.

That's practically a textbook technology career success story. I don't see any need to imagine drama or conspiracy to explain any of the steps. The scuttlebutt from inside Apple itself backs up this straightforward interpretation of events. Whatever the situation is with Mach in Mac OS X, I'm convinced that it has nothing to do with Avie's departure, and vice versa.

Why all the Mach hate, anyway? Over the past year, there's been a lot of virtual ink spilled about Mac OS X kernel performance. But drawing good conclusions from benchmarks is notoriously difficult. Is Mach really a problem, or is it just a red herring? The debate continues.

Meanwhile, Apple's kernel has faced political as well as technological criticism. Shortly after the first Intel-based Macs shipped, Darwin hackers noticed that the source code for the the x86 version of the Mac OS X kernel had not been released. It remains unreleased to this day. So far, the only official statement from Apple is that there is no official statement yet.

Finally, although this is only tangentially kernel-related, there's been a lot of speculation that the upcoming Mac OS X 10.5 Leopard will run Windows in some fashion. Some say it'll be virtualization, others say that Apple will implement Windows APIs directly in Leopard. Still others say this is all a pipe dream and that Windows on the Mac will be handled by a non-beta incarnation of Apple's existing Boot Camp dual-boot solution. Apple's technologically vague statement that it will “include technology in the next major release of Mac OS X, Leopard, that lets you install and run the Windows XP operating system on your Mac” doesn't really help settle things, unfortunately.

As Summer 2006 gets into full swing, leading up to Apple's Worldwide Developers Conference in August, there's quite a rumor storm brewing around the Mac OS X kernel, that most mundane of OS components. Granted, most of the rumors appear misguided or even ridiculous, but let's not lose sight of the big picture. It appears that something is going on with the Mac OS X kernel. Regardless of the individual quality of the rumors, their proliferation is a sign in and of itself. Maybe it's just a sign that people wish something would change in the Mac OS X kernel. But these rumors have been fed by Apple's own strange behavior surrounding the kernel source, so it's not all one-sided.

Early on, I dismissed each of the kernel rumors individually, much as I've done above. But collectively…I don't know, I'm beginning to think that there's just too much smoke here for there not to be a fire somewhere. So what is going on with the Mac OS X kernel? Where is the x86 source? Is it really (according to the leading theory) being held back in an attempt to thwart hackers? (You know, the hackers who already have Mac OS X running on generic PC hardware. Those hackers.)

We're all so used to seeing intellectual property owners being totally stupid when it comes to the piracy issue, but I'm willing to give Apple the benefit of the doubt here. Of all the things that could possibly mitigate the spread of Mac OS X on generic PC hardware, keeping the kernel source closed seems pretty low on the list. It's happening already, with no kernel source available. Hell, it happened even before Apple released the firmware update that enables Boot Camp to work. The cat's out of the bag. Surely Apple sees that.

Nevertheless, I remain convinced that there's something going on with the Mac OS X kernel. The most logical reason that I can think of for Apple's refusal (thus far) to publish the source code to the x86 version of the Mac OS X kernel is that the kernel shipping today in the x86 versions of Mac OS X Tiger is an evolutionary dead end, and therefore not worth the effort to pretty-up and publish.

Presumably, all of the major work on Mac OS X, the kernel or otherwise, has long been focused on Leopard. Now imagine that the Leopard kernel has significantly diverged form the Tiger kernel. Maybe it's a new kernel entirely, or maybe it has significant changes to support virtualization more efficiently, or something in between. Apple seems to be holding its cards close to its chest until WWDC. In the meantime, pushing out the source to a soon-to-be defunct incarnation of the Tiger kernel might not be along the critical path. Better to simply stall until August.

That's my optimistic theory, anyway. “Cool kernel changes coming, just wait!” But I also have a darker theory. It's also possible that Apple is considering a major change in its Mac platform strategy and does not want to drop the bomb until WWDC. This could also be something good, but my intuition tells me that any major Mac strategy change at this point is just as likely to be bad. Not "Mac OS X cancelled, Apple moving to Windows" bad, more along the lines of "Apple switching to x86" bad. That is, short-term upheaval and pain for the promise of long-term gain.

I'll be very surprised if there's no big kernel-related technology or announcement at WWDC. That said, I don't see any pressing need for major kernel shenanigans in Leopard, just more of the same kinds of improvements that came in Tiger. Maybe no big announcement really would be the best possible outcome. But I find it hard to explain away the recent noise and odd Apple behavior surrounding the issue. Hmmm…


This article originally appeared at Ars Technica. It is reproduced here with permission.