When a computer or an operating system uses software to do anything it normally can’t, the enabling technology tends to get labelled “virtualisation.” Well, don’t believe everything you read about that (except when you read it here). Let’s see what virtualisation is — and isnt.
System virtualisation rescinds operating systems’ right to own — or refusal to share — property such as hardware resources including memory, CPU cycles, allocated units of storage, I/O ports and even the display, mouse and keyboard. Operating systems expect exclusive ownership of system hardware, a lamentable remnant of such dinosaur OSes as CP/M and MS-DOS.
True system virtualisation, exemplified by the familiar Microsoft and VMware products, prises the OS’s hands loose from system hardware by constructing one or more convincing mirages of a complete computer system.
Guest operating systems are tricked into thinking they have an entire computer to themselves. Storage virtualisation manages and aggregates remote storage while mimicking a native direct interface (for example, SCSI) that gives OSes the comfort of owning a resource they shouldn’t.
Storage virtualisation can be done in hardware or software and does not require system virtualisation. System virtualisation can also be managed in hardware, but this capability is only now coming to the PC and in a relatively primitive form.
Let’s move on to technologies that are not virtualisation. If misleading terminology was a crime, Microsoft’s Virtual PC for Mac would deserve the death penalty.
The product had the misapplied moniker when Microsoft acquired its maker, but the fact that it looks and acts exactly like the proper desktop virtualisation software Microsoft sells as Virtual PC gives virtualisation a black eye it doesn’t deserve.
Virtual PC for Mac is actually an emulator: it creates a very slow x86 CPU in software on a PowerPC-based system, then emulates a very slow x86-based personal computer. Of course, true virtualisation also imposes overhead — in my experience, depending on the product, 25- 40%. Yet Virtual PC 7.0.2 running on a Power Mac Quad running four 2GHz PowerPC cores has Windows XP reporting that it’s running on a 533 MHz x86. You do the maths. Clearly, emulation is not virtualisation.
Apple’s Rosetta, a standard facility of OS X for Intel-based Macs, takes another non-virtualisation technology that, at face value, has the disadvantages of Virtual PC for Mac. Rosetta takes OS X applications compiled for PowerPC processors and runs them on x86-based Macs. It distinguishes itself in that it only needs to translate PowerPC machine instructions to x86.
Everything else is real — there’s no need to emulate the computer or run everything through multiple layers of software. When an OS X for PowerPC application makes a resource request while it’s running in Rosetta, after translation from PowerPC to x86 the request is made directly to OS X.
As a result, Rosetta doesn’t need to fire up an additional instance of OS X. A Mac application, even one built from open source, doesn’t know or need to know that its CPU is a mirage.
Emulation and instruction translation are valid solutions to problems that system virtualisation can’t address, namely crossing architectural boundaries. But their performance, resource requirements and feature limitations generally render them inadequate for day-to-day operation. On the other hand, virtualisation is safe, adaptable and getting faster.