The biggest jaw-dropping moment for a lot of people at Citrix Synergy last week was when Citrix demonstrated a version of their upcoming XenClient Type 1 bare-metal client hypervisor (formerly known as “Project Independence”) running on a MacBook Pro. While there are several products on the market that let you run Windows as a VM guest on a Mac OS X host (like VMware Fusion, Parallels Workstation, and the free Virtual Box), Citrix's demonstration showed Mac OS X and Windows running side-by-side. In other words, that demo was the first time a real company showed Mac OS X running in a VM on a laptop.
This is something that everyone guessed would happen sooner or later since client virtualization and Macs have both exploded with popularity over the past few years. Probably the only thing really holding it back was the fact that client hypervisors had yet to be invented. ;)
I had always heard that the Apple license agreement prevented running the Mac OS X desktop in a virtual machine, and in fact that's what I wrote in the live blog as I was watching the demo. But afterward Citrix's John Fanelli told me that wasn't accurate. So today I did something that I've never done before: I read the Mac OS X license agreement. (!)
It actually wasn't too bad. Apple has a dedicated page with links to PDFs of all the various agreements. Here’s what the license agreement says about the desktop version of Mac OS X 10.5:
Single Use. This License allows you to install, use and run one (1) copy of the Apple Software on a single Apple-labeled computer at a time. You agree not to install, use or run the Apple Software on any non-Apple-labeled computer, or to enable others to do so. This License does not allow the Apple Software to exist on more than one computer at a time, and you may not make the Apple Software available over a network where it could be used by multiple computers at the same time.
So to me this seems like it's perfectly legal to run OS X in a virtual machine as long as you do it on Apple hardware and you only run a single instance of the Mac OS. It doesn't say anything that would prevent you from running it in a VM. So I guess really the only limiting element in the past was the fact that client hypervisors hadn't been invented yet?
Just for kicks, I decided to take a look at the license agreement for Mac OS X 10.5 Server.
Mac OS X Server Software. This License allows you to install and use one copy of the Mac OS X Server software (the “Mac OS X Server Software”) on a
single Apple-labeled computer. You may also install and use other copies of Mac OS X Server Software on the same Apple-labeled computer, provided that
you acquire an individual and valid license from Apple for each of these other copies of Mac OS X Server Software. You agree not to install, use or run the
Apple Software on any non-Apple-labeled computer, or to enable others to do so. This License does not allow the Mac OS X Server Software to exist on more
than one computer at a time.
In this case they're specifically calling out the virtualization use case. But as long as each Mac OS instance is properly licensed (which makes sense), then it's fine, which would lead me to believe that since they didn't deliberately disallow it than it's okay.
A lot of people see this demo and have the same reaction I did, which was something like, "So what? Seamless Windows apps in my Mac OS X? I can already do that with products like Fusion and Parallels." But of course these seamless apps are coming from a virtual machine at the same level as Windows, so there's a lot more that can be done there. (First and foremost, now I can reboot my Mac OS X without taking down the Windows guest.
As a Mac user and borderline Echo Generation guy, I'm very excited about this. I use my Mac every day for my personal stuff, and I have all my work stuff running in a VM. It seems that no matter how I configure that VM, it's always a bit sluggish. And it's too bad that I have to shut it down or suspend it every time I have to patch and reboot the host Mac OS.
I absolutely love the concept of my locked-down, Windows-based work VM publishing seamless apps onto my Mac desktop. I love the idea of being able to use the Citrix receiver or Dazzle for Mac to pick up a streamed Windows app, and to have the streaming send it down to my local Windows OS.
The bottom line is that this is not going to help Mac apps enter the workplace. Instead it will mean that these various desktop virtualization solutions will be able to cohabitate with each other across platforms.