Virtualisation for Beginners
It's not just for server jockeys, you know
Your first ventures into virtualisation will probably be some variation of this, as a prop to run an old app on a new operating system. Running Windows apps on your Mac is an obvious example, and this opens up another useful possibility. The Mac understands Windows filesystems pretty well, but it can't, for example, write to NTFS. A Windows virtual machine running inside Mac OS X would get round this problem.
The cute 'Active Corner' in action. It curls down when approached by the mouse cursor, and a click on the exposed background switches into Window mode.
A practical example of this came up recently when a Nas device in an all-Windows shop failed. Users were able to recover the hard drive, but it was formatted for the Linux Ext 3 filesystem, which Windows can't read. A simple solution was to create a Linux virtual machine running under Windows, and recover the files from there.
Managing Virtual Machines
Virtual machines can grow very large. Typically, on creation, the machine will be allocated some maximum disk space, say 50GB, but will initially occupy only a tiny proportion of that within the host operating system's file space. As new files are added the space occupied grows dynamically, but this space isn't released when files are deleted within the guest - one more reason for ensuring data is stored outside your virtual machine.
Parallels offers a utility, Parallels Compressor, that can be applied to an offline virtual machine to seek out deleted space and remove it, shrinking down the virtual machine. Unfortunately, this valuable facility is close to useless in practice, because the utility refuses to function with virtual machines that have been snapshotted, and snapshotting is pretty well a fundamental requirement.
The problem is that snapshots store more than just the files within the VM - they also store the state of the processor and the entire contents of memory. "And the file system is not in a synchronised state," says Stas Protassov, Senior Vice President of Virtualisation and Storage at Parallels, "and you could corrupt the file system."
An update sometime next year is expected to fix this problem and make snapshots and the compressor compatible. Once this is in place Parallels foresees offering the option to run the compressor permanently in the background.
“There is no software-visible bit whose setting indicates whether a logical processor is in VMX non-root operation. This fact may allow a VMM to prevent guest software from determining that it is running in a virtual machine” - Intel VTx specification.
Intel's VM hardware design means that it may be impossible for an operating system to know it's actually running as a guest, not as a host. This is useful, eg. for driver developers, but also allows for the mother and father of all rootkits.
It's been suggested that an operating system simply has to try to load a VM of its own, ie. launch its own hypervisor. If it can't then it's probably running as a VM itself. However, Joanna Rutkowska, the Polish security specialist who conceived the Blue Pill hypervisor rootkit, has shown that nested virtualisation is possible, and an OS capable of launching a hypervisor might still be running under an even higher privileged hypervisor.
In essence, this is the so-called God Problem. Key to atheist Richard Dawkins' argument for the non-existence of God, is the premise that "a world without God would be very different from a world with God". But need there be any detectable difference?