If you're an IT professional during your day job, you've no doubt heard about software virtualization, in which you can use environments from VMware and Microsoft to create software-based OS installations that run under a physical PC or server. Virtual machines (VMs) run more slowly than true PCs—a lot more slowly, in some cases—but they're an awesome solution for several situations, including testing, software development, and even legacy server redeployment: You can set up older OSs or applications in these VMs, which run in a window under the host PC, and not have to do so on your primary machine.
Virtualization has come a long way in recent years. Once expensive, virtualization solutions are now far more affordable—even free in the case of some server-based products such as VMware Server and Microsoft Virtual Server 2005 Release 2 (R2), which also runs on XP desktops. Client-based virtualization solutions aren't very expensive either. You can get VMware and Microsoft's desktop products for about $100 these days.
The most interesting virtualization product to appear recently is Parallels Desktop, which runs on Intel-based Macs, letting those systems utilize their dual-core microprocessors for the ultimate in desktop-virtualization performance. Parallels also makes a workstation product for Windows and Linux users, but I've found it to be less full-featured than Microsoft and VMware's solutions. On the Mac, Parallels Desktop simply shines.
To test Parallels, I downloaded the free trial version of the software to my MacBook notebook, which features 1GB of RAM and a 2GHz dual-core Intel Core Duo processor. Parallels installs quickly and easily, and a trial product key will let you evaluate the product for two weeks. Remembering my recent experience using Apple's Boot Camp—which lets you dual-boot Intel-based Macs between Mac OS X and Windows XP—I set about creating a new XP virtual machine with Parallels. I was curious to see how it performed.
Installing an OS such as XP in Parallels (or any other VM solution) is straightforward and, in this case, surprisingly speedy. I allocated 588MB of system RAM to the VM, and off it went. After XP was installed, I downloaded all the latest hotfixes and other updates from Windows Updates, which required a few reboots, and installed something called Parallel Tools inside XP. This interesting toolset (Microsoft and VMware offer similar tools for VMs) solves a number of concerns, including Clipboard synchronization (so that you can cut and paste between the guest OS, XP, and the host OS, Mac OS X), time synchronization (so that the VM's clock is always up to date) —although this feature didn't work in my testing—and mouse synchronization (to prevent an annoying lag problem that occurs when you move the mouse cursor around; it doesn't work with drag and drop). It also adds drivers for the virtualized video card and network card offered by Parallels and creates a shared folder so that you can easily move files between Mac OS X and the guest OS.
Performance was very good, but I suspect that another gigabyte of RAM would make a huge difference. Virtual machines, by design, just can't equal the performance of true PC-based OS installations, but Parallels comes pretty close. The performance of desktop applications under Parallels is better than under Microsoft and VMware's PC-based offerings, but not as fast as when you dual-boot XP with Boot Camp.
So why would you want to use Parallels or a similar solution on the PC side? I can think of many reasons, actually. First, virtual environments let you test applications before committing them to your host PC. For example, you might want to check out a download or Microsoft security fix, but you're not sure how it might affect your system. Because VMs appear as simple (if humongous) files in Windows, they're easy to copy, move, and delete. If the download hoses your VM, delete it and use the backup.
I use VMs to test beta OSs such as Windows Vista and Longhorn Server (although neither is currently supported on Parallels), as well as numerous Linux distributions. And because I often need to take screenshots of the installation process for various OSs, VMs are the perfect solution because they run in a window on my main desktop. Web developers can use them to test their Web sites against different Microsoft Internet Explorer (IE) and Mozilla Firefox versions. And if you're using, say, XP, but you need to support family members still stuck on XP or Windows Me, you can install these OSs in a VM and access them only when you need to.
There are downsides to VMs, of course, beyond the obvious performance concerns. You still need to buy a legitimate copy of the OS that you want to install in a VM, and that can be expensive (unless you want to run Linux). And you might have trouble installing some OSs in some VM environments. Aside from the Parallels/Vista incompatibilities I mentioned previously, I've had trouble getting certain Linux distributions to work on Microsoft's Virtual PC product, for example.
As for my MacBook, I'll be going back to the Boot Camp-based dual-boot, because XP performs much better on the actual hardware than it does in a VM. But Parallels is an intriguing solution to running multiple OS copies on the same PC. All you need is a bucket-load of RAM and the willingness to try.