Run Windows (and DOS and Linux and OS/2 and BSD) on your Mac with VirtualBox
No longer are PC and Mac users stuck with only the operating system that shipped with their hardware. Users have several choices of virtualization software that allows them to concurrently run a virtual guest machine with the same or a different operating system from their host machine. A relatively new and popular use for virtualization is to allow Intel Mac users to run a virtual Windows machine without having within OS X, providing users access to Windows only applications. In this review, I'll explore users' software options for virtualizing operating systems on their computers, paying special attention to the open source VirtualBox and Mac users' experience.
Virtualization allows users to run various operating systems compatible with their processor (Windows, OS X and Linux all run on the popular x86 architecture that Intel and AMD use). Parallels and VMware Fusion are both proprietary solutions that will cost between $50 and $80 (Mac users pay a premium, probably because publishers think they're used to it). Microsoft offers Virtual PC for free, but it only runs on a genuine Windows installation, so Mac users will have to look elsewhere. Sun Microsystems, which has contributed much to the open source OpenOffice.org suite, has also recently acquired VirtualBox virtualization software and open sourced it. VirtualBox can be installed on Windows, OS X, Linux and Solaris host computers.
VirtualBox is available under the GPL, but most users will probably want to download the closed source version, which includes some additional features and is available for free under the Virtual Box Personal Use and Evaluation License. After installing VirtualBox, create a new virtual machine and set your options. First, choose a guest OS. VirtualBox supports a slew of guest OS's' you can run anything from DOS and Windows 3.1 to Vista, OS/2 and variants of the Linux kernel. Assign some RAM to the machine; for best results use at least as much as VirtualBox recommends. Finally, you'll need to create a virtual hard disk using VirtualBox's virtual disk wizard. I chose a dynamically expanding disk image, which has a maximum size limit, but expands only as the virtual machine needs it. Alternatively, users can boot Windows from their Boot Camp partition on their Mac. Start the guest machine and install the OS. For optical media-based installers, just load the install disc onto your host system. For guest operating systems you plan to install from a disk image, you'll need to re-enter VirtualBox's virtual disk manager and add the disk image so your virtual machine can access it and install the OS.
Once you've got your virtual machine up and running, it will operate almost exactly the same as it would on its own hardware. There are some caveats, though. USB sharing is a little finicky; I was unable to provide either my Windows XP or Ubuntu guest machines access to my external hard drive, though the XP machine quickly recognized my PSP. Video driver support can be unreliable too. VirtualBox supports several video options, including full screen and a seamless mode, which displays guest OS applications as though they were running directly within the host machine. These features are only accessible, however, once the user installs guest additions. Even if you're uninterested in seamless mode, I highly recommend installing guest additions as they allow the mouse to easily move from the virtual machine back to the host machine. It provides a less frustrating user experience that comes closer to features offered in paid virtualization suites.
A great feature of VirtualBox is the ability to create snapshots of your guest OS. Users can save their virtual machine's current state (running or stopped), and return to it later. For example, users can create a snapshot, install trial software and use it until its trial period expires, then restore the guest machine to its snapshot state and re-install the trial software. This works unless the trial software connects to a remote server to validate the trial period. Another great use is for web testing. I design sites on my Mac, but need to test in Internet Explorer on Windows, so I maintain a snapshot with an IE6 installation and update to IE7 when I want to test on that, knowing I can quickly revert back to IE6.
There are some downsides to using VirtualBox. It isn't as polished as either Parallels or VMware Fusion. The guest machine setup requires some additional steps and expertise, and unadventurous users may be intimidated by the VirtualBox' virtual disk manager. VirtualBox does not integrate with OS X's Exposé as nicely as VMware Fusion does, nor does it allow users to minimize guest OS windows to the OS X dock as though they were native windows. Perhaps the most annoying hurdle, setting up file sharing in a Windows guest machine requires writing a batch file (quick and easy for moderately experienced Windows users, but probably not something a typical Mac user is likely to attempt).
These little annoyances and the extra time users may need to take in order to track down answers in support forums or help files could make VirtualBox a challenging virtualization choice for novice Mac users. Those with moderate experience in OS X and other operating systems won't have any problem, though, and because VirtualBox is only in version 2.0.4, future versions will likely provide better integration with OS X, creating a better user experience all around. This is an open source project worth supporting, and definitely one to watch for updates if it's too rough cut for you right now.