Our Parallels Desktop and VMware Fusion shootout took a deep dive into the two most successful commercial virtualization products for the Mac, but many of you had questions about VirtualBox, the free and open source desktop virtualization software currently offered by Oracle. Both Parallels and VMware offer plenty of features for home and business users, but is VirtualBox an acceptable alternative for the cash-strapped?

The focus of this article, as it was in our VMware and Parallels comparison, will be on running Windows 7 and Windows 8 guests on an OS X host, but VirtualBox's cross-platform nature means that many of the observations made in this article will also apply to VirtualBox running on Windows and Linux hosts. One of the only differences is that OS X virtual machines, which are still labeled as an experimental feature in the current version of the software, are officially supported only within OS X hosts, both because of Apple's licensing stipulations and because OS X won't run on all of the CPUs that Windows and Linux can use.

For this article, I have attempted to evaluate VirtualBox both on its own merits and based on the criteria we laid out in our Parallels Desktop and VMware Fusion shootout. I used a 2011 iMac with OS X 10.8.2 installed, and tested 64-bit versions of both Windows 7 and Windows 8 running in VirtualBox 4.2.1.

Setup and general use

The VirtualBox UI hasn't changed much over the years. The application's main window is a list of your VMs and a bird's-eye view of their settings, which can be changed on a machine-by-machine basis. It's not too difficult to, say, increase the amount of RAM or CPU power your VMs can use. VirtualBox does lack the breadth of the simple, step-by-step setup wizards that Parallels Desktop and VMware Fusion use to make themselves less intimidating to virtualization newbies, but the "Create virtual machine" wizard that's there should be adequate for basic use.

My experience with VirtualBox has been that the settings need a bit more massaging than either VMware Fusion or Parallels—when you select the OS you'll be running, VirtualBox will automatically define some default settings for your VM, and they're often deficient in some way. For example, VirtualBox's default settings for a 64-bit Windows 7 VM give it access to just 512MB of RAM, which is 1.5GB shy of the minimum requirements (and a full 3.5GB short of what I would probably recommend using, if your host system has enough memory). If you want to increase the number of CPU cores your VM can use, enable 3D acceleration, and allow your VM to use more than one monitor, you'll also need to dive into the settings.

There are also some other hoops to jump through: the first is support for USB 2.0 and a few other technologies, which must be enabled manually after downloading and installing a separate extension pack. This extension pack is licensed under VirtualBox's Personal Use and Evaluation Use (PUEL) license, which as the name implies only allows you to use it for your own purposes or for evaluation, but not for multiple computers in a business environment (though in that case an exception is made for academic institutions). The rest of VirtualBox is licensed under the much more permissive GPLv2 license, but commercial users won't be able to add USB 2.0, PXE, or other handy features to their VMs. 3D support in VirtualBox is also complicated—so much so that we'll be devoting an entire section to it later.

One good thing about VirtualBox is its ability to work with a large variety of virtual hard disk formats—it will use its own native VirtualBox Disk Image (VDI) by default, but it also supports the VMDK files commonly used by VMware products, the HDD files used by Parallels, and the VHD files used by Microsoft virtualization products, among others. This feature doesn't allow you to import VMs straight from Parallels or VMware products, but it does make it easy to set up a virtual disk that multiple VMs can share for data storage, at least in theory.

One feature VirtualBox lacks is the ability to easily boot from existing Boot Camp partitions, as both VMware Fusion and Parallels can—some tutorials exist for the technically minded, but this method isn't officially supported and you run the risk of breaking your Boot Camp partition.

After configuration, start the VM and you'll be prompted to insert OS installation media, either into the host computer's optical drive or via an .ISO file, and unless you've messed your configuration settings up in some fundamental way, you'll be able to install the OS into your VM just as you would on a standard PC. After that, install the Guest Additions to enable things like mouse pointer integration and the ability to dynamically change the guest OS's screen resolution.

OS integration

VirtualBox includes a few basic features to enable communication with the host OS: the host's filesystem can be made available to the VM using VirtualBox's "shared folders" feature—add a folder from the host operating system here, and it will appear to the guest system as a networked drive. Sharing the clipboard between the host and guest operating systems for the purposes of copying and pasting is also possible if it's enabled, though it's disabled by default. These sorts of decisions are probably good from a security standpoint, since they limit the amount of damage a compromised guest OS could do to the host, but they do reduce out-of-the-box usability. Both VMware and Parallels allow you to drag and drop files from the host OS to the guest OS and vice versa, which is a simple and intuitive feature I'd like to see implemented in VirtualBox.

Both VMware Fusion and Parallels also add many other operating system integration features—VirtualBox lacks the ability to launch Windows apps from the Finder or the Dock, for example, and Windows guests likewise can't launch OS X applications. If you rely heavily on Spotlight or Alfred to launch applications and would like to work your Windows apps into the same workflows you use for your OS X apps, VirtualBox won't let you do it. Extras like Notification Center and Dictation support are completely out of the question, as is the ability to change the language of the guest OS as the host OS's language changes.

Using the host's USB devices from within VMs is also unreliable. You can click the USB icon in the bottom-right of the window and then click the device you'd like to share with the VM, but doing this for my Mac's card reader didn't work at all, and attempting to pass the webcam to the guest OS crashed the VM the first time I tried it and slowed it down to the point of unusability the second time—in each case, the VM saw the webcam, but got hung up trying to install it. Even trying to mount a USB drive into VirtualBox prompted an error message that the device's driver couldn't be installed. Meanwhile, Parallels and VMware Fusion both handle these requests easily. In my Parallels 7 Windows 7 VM, I was easily able to mount my USB drives and use my iMac's webcam and card reader.

Listing image by Oracle