One of the questions that I'm most often asked is "Can you use a Mac for desktop virtualization?" The answer to that is actually kind of complex, mainly because the term "desktop virtualization" can mean so many different things.
One of the questions that I’m most often asked is “Can you use a Mac for desktop virtualization?” The answer to that is actually kind of complex, mainly because the term “desktop virtualization” can mean so many different things. But rather than always answering “it depends,” I thought I’d take the time to walk through each scenario and look at where we are today. (And hopefully this article will show up in Google’s [mac desktop virtualization] search results soon and I’ll be able to just point people there. :)
So anyway, here are the different scenarios I can envision that people might be thinking about when they ask about Macs and desktop virtualization:
- Using a Mac a a client for VDI or server-based computing
- Running Windows desktops or apps on a Mac
- Running Mac desktops or apps on Windows
- Running Mac OS X in a virtual machine
- Building a Mac-based VDI solution
Using the Mac as a client for VDI or server-based computing
If you just want to access a remote computing environment (either terminal server or VDI) from a Mac, then you’re in luck. You can pretty much do whatever you want here.
Citrix has had a Mac client for years, and they recently updated it to Version 11. (It’s officially called the “Citrix Online Plug-in for Mac” and is essentially an ICA client for XenApp and XenDesktop.) It even has Citrix Access Gateway support and a bunch of other cool things, like the ability to put published app icons in the dock. (Unfortunately Citrix’s own client feature matrix (link to PDF) is not up-to-date.) Citrix also has a Dazzle client for Mac, which from what I can tell is essentially an iTunes-looking version of the normal Mac client.
For RDP, Microsoft recently updated their MAC RDP client to version 2 (which is called “Remote Desktop Connection Client for Mac 2”). The v2 client is great and “feels” like a real Mac app, which is fantastic. The only real downside is that it’s based on the RDP6-era technology, so you don’t get seamless RemoteApps or multimedia remoting or anything.
Quest Software also just released a Mac client which supports most of their cool things, including seamless windows and graphics acceleration.
Running Windows desktops or apps a Mac
If you want to run Windows apps on a Mac, the way to do it is to run a full copy of Windows in a VM and then use whatever desktop integration mode is available to hide the windows desktop which makes it appear as if the Windows apps are running natively. And that’s as close as we’re ever going to get to “native” Windows apps on a Mac. The app virt vendors can’t do it, and WINE will never be practical for broad app use.
The good news is that the competition between VMware and Parallels means that Fusion and Parallels Workstation are both fantastic products that are getting lots of development. And if you don’t want to shell out the $80 for either of those products, keep in mind that the free (and open source) VirtualBox is out there as a third option.
Running Mac desktops or apps on Windows clients
So if running Windows desktops or apps on a Mac is fairly straightforward, what about the opposite—running Mac desktops or apps on Windows clients.
The easiest way to do this would be with Aqua Connect, whose Terminal Server for Mac OS X product converts a normal copy of Mac OS X Server into an RDP-based terminal server. (Aqua Connect was featured two weeks ago on Brian Madden TV episode 24.)
Aqua Connect is fine for connecting to remote Mac apps, but what if you want to run a Mac VM on your Windows client?
Running Mac OS X in a virtual machine
This is the million-dollar question: Can you legally run Mac OS X in a virtual machine?
The answer is “yes” (but with conditions).
If you want to run Mac OS X in a virtual machine, you can legally do so if:
- You need to use the server version of Mac OS X (which is USD$499 instead of $129), and
- You need to run the VM on Apple-branded hardware
The easiest way to run Mac OS X in a VM is to use VMware Fusion, where the Mac OS X is fully supported as a VM. (Of course by definition, Fusion is a Mac-only product, so by extension this means that this support is only for Mac VMs running on Mac hosts.)
But what if you want to run Mac OS X as a guest on Apple hardware, but with a host OS that’s not Mac OS X? From a legal standpoint, I think this is no problem, although I haven't yet found any official support from a technical standpoint. Xen, Hyper-V, and ESX don't officially support OS X as a guest OS.
The same is also true for the client hypervisors. Every single client hypervisor vendor (Citrix, VMware, Virtual Computer, and Neocleus) said basically the same thing, which was "from a technical standpoint this is not a problem, but we're not sure about licensing so we're not really going to push it." Of course if OS X Server is the only thing that's legal to run in a VM, then do you really want to spend $499 for the right to do so? At that price, even VECD seems like a good deal!
UPDATE: Thanks to Kalle Saunamäki for pointing out that I missed Parallels Server for Mac product. From what I can tell it only runs on top of the Mac OS X as a Type 2 VMM, so really it's more like a server-tuned version of Fusion as opposed to a real hypervisor.
Building a Mac-based VDI solution
Is it possible to combine all of this to create a Mac-based VDI solution? You could buy a single copy of Mac OS X Server and a single copy of Aqua Connect Terminal Server--that would give you the ability for users to connect via RDP. But how do you run the individual VMs? As far as I know, there's no hypervisor that supports this officially, which means you're pretty much at a dead end.
Actually if I was tasked with creating a "VDI" solution, I'd probably just use the Aqua Connect Terminal Server product. This would actually work out really well since the Mac doesn't have a registry or DLLs and all user and application settings are saved in XML-based plist preference files in each user's home folder.
So I guess that's it? That's everything you need to answer the question about using a Mac for desktop virtualization. What do you think? Did I miss anything?