When a computer or an operating system uses software to do anything it normally can’t, the enabling technology tends to get labeled “virtualization.” Well, don’t believe everything you read (except here). Let’s see what virtualization is and is not.
System virtualization rescinds operating systems’ right to own, or refusal to share, property -- 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 virtualization, exemplified by the familiar Microsoft and VMware products, pries 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 virtualization 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 virtualization can be done in hardware or software and does not require system virtualization. System virtualization can also be managed in hardware, but this capability is only now coming to the PC and in a relatively primitive form.
Now let’s consider technologies that are not virtualization. If misleading terminology were 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 virtualization software Microsoft sells as Virtual PC gives virtualization 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 virtualization also imposes overhead -- in my experience, depending on the product, 25 to 40 percent. 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 math. Clearly, emulation is not virtualization.
Apple’s Rosetta, a standard facility of OS X for Intel-based Macs, takes another non-virtualization technology that, on its face, 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 care that its CPU is a mirage.
Emulation and instruction translation are valid solutions to problems that system virtualization can’t address -- namely, crossing architectural boundaries. But their performance, resource requirements, and feature limitations generally render them inadequate for day-to-day operation. One the other hand, virtualization is safe, adaptable, and getting faster. That’s what you need.