Windows compatibility in Mac OS X

While, I usually find myself agreeing with Robert X. Cringely (aka. Mark Stephens) more often than not, his current article get so much wrong that I begin to even wonder if he’s got a clue or not.

First, the idea that Apple should switch from a microkernel to a monolithic kernel for the performance increase that would provide, is flat wrong – mostly because Darwin (the underlying operating system in Mac OS X) is not really a microkernel. While, large portions of the Mach microkernel codebase made it into Mac OS X, the file-system, network stack, and other components were integrated into the kernel as well. The performance gains that Linux might show over Mac OS X on the same hardware has a lot to do with the talent of the Linux kernel team. Should Apple spend a lot of time looking for ways to make kernel faster? Sure! Could the Apple engineers learn a thing or two from Linus and the Linux Kernel team? Most probably. Should Apple toss their existing, working, kernel code and start from sratch? Hell no!

As far as Apple having a monolithic kernel running in the lab today, of course they do – it’s called FreeBSD. Darwin and Mac OS X share a large amount of their codebase with FreeBSD, and have since version 1.0. Any move to a monolithic kernel would simply involve migrating the existing OS X kernel drivers to FreeBSD, and simply compiling Quartz and other OS X only technologies on the revisied system. I’d guess Apple almost always has this type of a system running in the lab, simply to make integrating updates from FreeBSD into OS X smoother.
Finally, Cringley’s main point is that Apple will probably one day have Windows XP API’s implemented natively under OS X. He says this makes more sense than a “compatibility middleware like Wine”.

Huh?

What does Cringely imagine that Wine is? Has this guy ever seen Wine, or even the Wine home page? Wine is an “an Open Source implementation of the Windows API”, the fact that it’s running on top of Unix and not Mac OS X is merely a matter of fate, and not some imagined difference in technology. If Apple were to contribute to the current effort to port Wine to the Mac, Cringely would achieve his goal, but to pretend that Apple should be doing something different is non-sensical.

Cringely goes on to assert that somehow Apple should promote XP versus Vista compatibility in terms of API support. I’m not sure why anyone would believe that Apple would be interested in only supporting the 5 year XP set of APIs (or that there is that much diffence in the two API sets). Even the Windows XP APIs are a moving target – .Net was not in the orginal Windows XP APIs. Do we want to relegate the Mac to running Windows software releases 2-3 years ago or more? Clearly any attempt to make Windows API’s available on the Mac would have to involve targeting Microsoft’s latest API releases.

The number of clueless commentators out there is enormous (I won’t even try to address Dvorak‘s issues); I used to expect a little more from Robert X. Cringely – my mistake.