Until this year, market share for desktop virtualization products has been divided between two contenders: the various incarnations of VMware – such as the free VMware Player or the $189-a-seat VMware Desktop -- and Microsoft Virtual PC / Virtual Server. Now a new contender has appeared, one which offers a feature mix and a licensing plan that competes very strongly with both of those: VirtualBox.
VirtualBox, now in its 1.4 iteration, exists as both an open-source and commercially-licensed product, with editions available for Windows, OS X (Intel only), and Linux (many distributions), with more potentially on the way. Anyone can use the full commercial version for free as long as they're only using it for evaluation or personal use; corporate users will need to buy licenses.
The open source edition is freely available under the GPL2 license and is functionally the same as the commercial version, although it lacks a few of the more commercial features (mainly, USB and iSCSI support). I worked with the Windows version of VirtualBox for several weeks and was impressed enough with it to start using it as a regular replacement for both VMware and Virtual PC, at least as far as emulating desktop OSes (operating systems) and the occasional server OS as well.
The main VirtualBox interface lists all the available virtual machines, with options to create new ones or edit existing ones. Creating a new virtual machine is strongly reminiscent of the same process in other programs. For instance, there's a wizard interface which steps you through setting up the most basic information about the machine, such which operating system is used, how much memory included, etc.
Images for hard disks, CD/DVD .ISOs and floppies are all tracked through an internal database that makes it a lot easier to re-use images between multiple machines. If you want to automate the management of virtual machines, there's an included vboxmanage utility that makes it possible to script just about everything you'd do with VirtualBox through the GUI. It's also possible to use a physical disk in a virtual machine, but right now this is only possible through vboxmanage.
Like other virtual machine solutions, VirtualBox includes a set of host-integration utilities, called guest additions, to allow Windows and Linux guests to run all the more efficiently in VirtualBox. They don't take more than a few minutes and a reboot to install, and add handy features like pointer integration—i.e., allowing you to freely move the mouse in and out of the window space for the virtual machine without having to capture and release it. (Pointer integration can also be toggled on and off at will.) Another important guest addition—USB device support—requires the presence of a device driver on the host, but the installation process is no hassle at all. All the user needs to do is declare which USB devices are to be made available to the guest machine, supply whatever drivers are needed in the guest, and the rest is automatic. I tried out the Linux guest additions in Ubuntu 7.04 as well; the installation process isn't as straightforward as it is in Windows, but once installed they worked quite well.
One thing the guest additions don't seem to support (unless I overlooked it completely) is drag-and-drop integration—something I liked having in Virtual PC, but which I'm not heartbroken to live without. The only other thing I didn't find was also minor—the ability to capture a screenshot of a guest machine—but this is easily worked around with a program like Irfanview.
Most of my experience with virtualization in a day-to-day context has been with Virtual PC, and on the whole VirtualBox offers a slightly more satisfying experience. The emulation's a bit snappier, even without the guest additions, and VirtualBox's graphics adapter emulation works a little bit better, too. For example, it offers 16-, 24- and 32-bit color depths, whereas Virtual PC only does 16-bit and 32-bit, which created compatibility problems here and there. Saving and restoring virtual machine states also seems to happen slightly faster. Many other functions work similarly—like the ability to create system-state snapshots or shared folders between the guest and host. The latter is set up in Windows through a network share and in Linux via a mount point.
Another nice feature for Windows hosts is the ability to remotely connect to any VirtualBox machine via Remote Desktop, regardless of what operating system is running as the guest.
VirtualBox is mainly for desktop and light server use. It's not a full-fledged managing hypervisor solution; at least, not yet. The APIs for the program itself aren't yet fully documented. As it stands, though, it is still a strong and highly-useful alternative to the two most commonly-referenced products in this space.
About the author: Serdar Yegulalp wrote for Windows Magazine from 1994 through 2001, covering a wide range of technology topics. He now applies his expertise in Windows NT, Windows 2000 and Windows XP as publisher of The Windows 2000 Power Users Newsletter and writes technology columns for TechTarget.