Skip Navigation

And… Leopard!

I sat down with a bunch of nerds today —Windows nerds; young nerds; the kind of nerds that read Digg, but not Slashdot— and the first thing any one of them said to me?

Boot Camp!

These are guys who dislike the Mac OS for religious reasons —out-of-date prejudices and bad assumptions rather than actual experience— but they’re intrigued by the dual boot. One minute they’re making jokes about one-button mice, and the next I have one of them turning to me and saying “I don’t like the Macintosh system, but Apple’s hardware is so cool! This is the best news ever.” Here’s a guy, a .NET programmer with no love for the Mac OS, who wants an Apple computer. That’s big news. Weird news, but big news. Even if he doesn’t switch OSes full-time after poking around in OS X, he’ll be at least better informed about the whole thing.

Admittedly, class-C nerds like this don’t represent a big chunk of the computer market, but the influence they exert over friends and family when it comes to ‘computer stuff’ is significant. Throw in the trickle-down influence of your class-A and class-B nerds who have already switched, multiply by the iPod halo effect, and you’re given a pretty interesting forecast of Apple’s future in the personal computer market. I’ll still be interested to see how Windows Vista plays on all this; I get the impression that Vista will be Microsoft’s 10.0 —impressive from a technical standpoint, but slow as molasses and needing another few years to fully mature— and wonder how the consumer market will actually respond to it. A part of me fears that translucent gaussian-blurred window chrome will be enough to impress a lot of people, but that’s something for another time.

John Gruber’s latest article, Windows: The New Classic, runs completely counter to my prediction yesterday that Leopard won’t do virtualization:

Right now, it’s a dual-boot situation, which is obviously less than ideal. It’s not hard to imagine, though, that the version of Boot Camp Apple is building into the upcoming Mac OS X 10.5 (a.k.a. Leopard) will be a concurrent virtualization tool — i.e. that Windows (and perhaps any other PC OS) could be hosted within a running Mac OS X session, obviating the rather annoying need to reboot to switch between OSes.

Do I know this? No. But it certainly seems like the obvious direction for Boot Camp to take, and it’s certainly technically possible. E.g. earlier today, their hand presumably forced by Apple’s release of Boot Camp yesterday, Parallels released a public beta of their $50 Workstation virtualization system for Intel-based Macs. It’s like Virtual PC except, because there’s no need to translate between the PowerPC and x86 instruction sets, it executes the hosted virtual system at native speed. I think it’s a safe bet that Apple plans to include something like this with Mac OS X 10.5, for free.

And this points to the rather delicious conclusion that Apple is casting Windows, including Vista, as the new Classic.

For recent switchers: he refers to the Classic environment in OS X, not ‘classic’ as in “judged over a period of time to be of the highest quality and outstanding of its kind” (thank you Dictionary); and you have to admit that ‘Windows is the new Classic’ is a pretty great marketing position. It says “Oh, you still need to run that Windows program of yours? You got it out of a cereal box, huh? That’s a shame… but you and I both know real Mac apps are more convenient, right? Good.”

That said, I was initially skeptical of the virtual machine (VM) solution, hence my “don’t expect to see it in Leopard” call yesterday. Dual-booting and virtualization are two very different roads to travel. Dual-booting is, well, dual-booting: you load up Windows and you’re sitting at a Windows computer, with all the hassles that affords you. Thankfully, with your OS X installation on another partition using a filesystem XP can’t read or write to, trouble in Windows shouldn’t have adverse effects on your Mac. Shouldn’t.

Virtualization, on the other hand, is a whole different ball game. Windows (the guest OS) actually runs inside OS X (the host OS). This has dozens of advantages, my favorites being:

This all appeals greatly to me as a guy who works with web sites — I can interactively test every browser on every platform on a single machine and without rebooting. But it has disadvantages too, primarily:

Yup, that’s basically all the disadvantages I could come up with off the top of my head. So if virtualization is so frickin’ great, why wouldn’t I believe Apple to be bundling it in the next release of OS X?

Because they’re working on dual booting, and improvements to the dual-boot process translate to precisely zero benefits on a virtualization project. The firmware upgrade, the drivers, the software for eject-key support, screen brightness control, and (one would hope, eventually) keyboard backlighting, iSight, and infra-red remote support… these do nothing for a virtual machine. The virtual machine basically just lies to the guest OS about the ‘computer’ it’s running on and feeds it the resources it needs. No need for Windows eject-key software when OS X is in charge of the ejecting.

My reasoning was (and although I didn’t specifically mention it in the post, I did mention it in email and IM, so there’s no backtracking on it now) that if they’re already working on dual-boot, why pour resources into VM? Dual-booting is cheap, and it does the job; why build two products when one will suffice? And with the standard method of virtualization being ‘run from disk image’ and ‘saved state’ as mentioned in my list of pros, a bootable Windows installation on a separate partition really doesn’t help. You can’t reliably save state for the VM if someone can reboot at any time and make changes the VM isn’t aware of.

My first error was assuming that OS-bundled virtualization would run just as I described above; that is, like every other virtualization product on the market. The second was that dual-boot would come first, and VM would come later. No, the more likely scenario is that the VM was the primary objective all along. I’d forgotten the other major disadvantage to virtualization: lousy peripheral support.

Thinking back to the days when Classic was still a required part of the OS X experience (and I was a Windows switcher, so it’s not like I had a lot of legacy apps built into my workflow), hardware support was the dog’s breakfast. There was one word for printing and scanning from Classic apps: problematic. If you really needed to get the job done you’d boot into OS 9 and do it the old fashioned way, virtual machine be damned. Flash forward to today and you can already imagine the hell of a Windows-reliant workflow under VM. You’d be happy that you could run Windows at all, but unhappy every time a quirk of virtualization screwed you around.

Thus, if Apple is to provide a virtual machine for Windows on Mac OS X, they have to provide a ‘boot into Windows’ option: the VM alone won’t cut it for people who rely on Windows in a do-or-die capacity. The Classic environment didn’t preclude booting into OS 9, it just rendered it unnecessary for 90% of people 90% of the time. By the same token, dual-booting Windows is the contingency plan for the edge cases; the people with special needs that VM can’t fulfill.

So yeah, my tune has officially changed. Bring on Leopard, and bring on the Windows virtualization layer. The question will be whether Apple can pull off some impressive technical jiggery-pokery to make the execution of Windows apps as seamless as possible, at least on par with Classic, or whether we’ll see the familiar “Windows desktop running in a little window on your Mac desktop” VM paradigm rehashed in Boot Camp 1.0.

I guess we’ll wait and see.