Virtualisation for Beginners
It's not just for server jockeys, you know
Hands On VMWare engineer Shawn Morel opens an entertaining and highly recommended seminar on the internal workings of his company's Fusion product for the Mac by dividing up an area of space with a couple of vertical lines. He points in turn to the three segments this creates: "You've got Userland, the Kernel space and Hyperspace."
He adds a few more scribbles.
"And then you've got all these little things running around here, and you can have one or more VMXs, and you've got the kernel module and you've got this thing called the VMM, and it's all very complicated and it all sort of works like magic."
And then he puts up the Q&A slide.
...it's all very complicated and it all sort of works like magic
The joke gets a huge laugh from the audience of developers. But, of course, he's right. Virtualisation is very complicated. And it does work like magic. But knowing a little bit about how the magic works can throw useful light on how you can make it work for you.
As Morel says later, in what turns out to be a pretty full discussion of the technicalities: "A lot of people on OS X don't really realise the benefits of virtualisation. They'll go, 'Oh, sweet, I can run that Windows app that I couldn't run before.' The rest of the industry is like, 'Oh great, I've got isolation, I've got disaster recovery and fault tolerance, and I can consolidate my servers."
His point is that all those enterprise-class benefits of virtualisation are there for the individual desktop user too. Nothing that happens inside a virtual machine can damage or change anything in the host operating system, or in any other virtual machine that might also be running.
A single-core Parallels Win XP VM under Mac OS X. The decoder is running at around 40f/s, pulling in frames from the Avisynth frameserver fed from a demuxed MPEG2 file
His remarks don't just apply to Mac users. Any operating system disaster happening inside a virtual machine running under any other operating system is transient, because you can simply close down the virtual machine and start it up again, without affecting the rest of the system. If - and Windows users will be familiar with this - the causes of the disaster survive a reboot, perhaps because the recent installation of the new app has messed everything up, there's no need for an intricate repair process. Just throw the whole VM away and go back to the last working snapshot.