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.
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:
- No rebooting. Like I said, the guest OS runs inside the host OS.
- The guest OS is sandboxed — sitting in a disk image with no real access to the rest of your machine. A hard-disk-melting virus from hell wouldn’t screw up your OS X installation.
- You can have as many guest OSes as you please, and you don’t need to repartition your hard disk for them, either.
- You can literally pause the guest OS mid-flight, instantly suspending all processes and saving the state of the CPU registers and RAM to disk for later retrieval, which means no startup or shutdown. You want Windows? Launch the virtual machine: it’s exactly as you left it.
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:
- The virtual machine, and by extension the guest OSes, are processes of the host OS. They’re sharing RAM and CPU time just like any other application on the host, so performance will never be 100% of what the guest OS would achieve if it were actually installed on the computer. If your computer is really fast and loaded with RAM this isn’t much of an issue, but it still counts as a disadvantage.
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.