Just before the holidays, Oracle pushed out the first major update to VirtualBox since it acquired Sun in January of 2010. The company has provided a steady stream of maintenance releases to the 3.2.x series, but 4.0 brings changes in the VirtualBox interface, new virtual hardware, better support for Open Virtualization Format (OVF), and a change in the way that VirtualBox's proprietary bits are distributed.
VirtualBox is described as "a general purpose full virtualizer for x86 hardware," for server, desktop, and embedded use. VirtualBox includes a GUI application for creating and managing guest machines much like VMware or Parallels, and also includes a headless mode for those who wish to use VirtualBox to manage headless guests.
New in 4.0
To test VirtualBox, I installed a couple of 32-bit and 64-bit Linux distributions. In theory, VirtualBox will also allow users to run Mac OS X Server guests, though I didn't have a Mac OS X disc handy to test. The full range of OSes that VirtualBox specifically supports as guests includes Windows 3.1 through Windows 7, Solaris, FreeBSD, NetBSD, OpenBSD, a wide range of Linux distributions in 32 and 64-bit flavors, and even OS/2. Of course, you can try your luck with other OSes, but they're not specifically targeted. VirtualBox itself is also available for Windows, Mac OS X, and Solaris for those who need to run Linux under another host OS.
Current users of VirtualBox will note that there is no longer an Open
Source Edition (OSE) and a proprietary ("personal use and evaluation") release. This is because VirtualBox 4.0 has been restructured to distribute proprietary bits as extension packs. The proprietary extensions are now modular, which means they can be distributed separately. It also means that VirtualBox picks up an extension architecture that third party developers can target to add new features or tools for working with VirtualBox.
Oracle has done a fine job of providing support for the most current major Linux distributions — and then some. You'll find native packages for the last five Ubuntu releases, the last three Red Hat Enterprise Linux (RHEL)/CentOS/Oracle Linux releases, Debian Lenny and Squeeze, SUSE Linux Enterprise Linux 10 and 11, openSUSE 11.1 through 11.3, Fedora 13 and 14, and even Turbolinux 11. All in 32-bit and 64-bit packages. If your distribution of choice isn't provided, Oracle provides an installer, and of course source code is available as well.
By default, VirtualBox leaves out support for USB 2.0, RDP (remote desktop protocol) support, and PXE boot support for the virtual Intel NICs. The "extension pack" is distributed under a Personal Use and Evaluation License (PUEL), which is free as in beer. Installing it is simple enough. It's distributed as a single file for all architectures. Note that the GUI for VirtualBox doesn't indicate whether this extension is installed or not, and the options for the features are all visible — it's easy to imagine that some users will be confused by the fact that it seems possible to enable, say, USB 2.0 support, but not actually have it work without the extension.
As mentioned, VirtualBox includes an interface update and this one is (at least in this reporter's opinion) a bit of an improvement. It's still fairly complex, and VirtualBox throws a lot of options at the user that many users won't be prepared to answer. For instance, would you like Nested Paging with your System Acceleration? There's nothing wrong with presenting the options, but VirtualBox doesn't provide any contextual help to assist the user to making the decision. VirtualBox does come with a fairly comprehensive help guide, however, which helps provide guidance if you're willing to dig a bit.
Some of the error messages are a bit much — especially the first time a VM is launched. When configuring a Linux Mint Debian Edition guest, I received something like 5 error messages in quick succession ranging from complaints about the I/O settings and Ext4 compatibility to a mismatch in the guest drivers for VirtualBox and the 3D settings. I was able to work around them or turn off the "errors" that were simply notifications, but VirtualBox does throw a lot of messages around initially.
OVF is meant to provide an interchangeable format for virtual machines so that packaging virtual appliances is simpler for vendors. In practice, it's probably easier to provide native guest packages for each virtualization solution. I tried to test OVF import, but VirtualBox choked on a Fedora guest that I'd converted using VMware's ovftool. Whether this was a flaw on the part of VirtualBox, VMware's conversion tool, or some of both is unclear.
This release includes quite a few small changes that are likely to mitigate headaches for users. For example, 32-bit hosts now may have more than 2GB of RAM. New virtual hardware includes an Intel HD Audio interface for newer guest OSes, a new motherboard (Intel ICH9) with virtual PCI Express, and a number of other hardware improvements. Linux and Solaris guests should now be able to support multiple screen configurations if they're using X.org 1.3 or later, though I haven't had a chance to test this.
VirtualBox's performance is adequate if not particularly impressive. I mostly tested desktop guests with between 1GB and 4GB of RAM, and one or two virtual CPUs, and then went about my normal routine — browsing the Web, installing packages, chatting on IM, using Vim and xterms, and generally light desktop usage. Nothing too grueling. The test machine was a Dell Core i7 laptop with 8GB of RAM. In some cases a single guest with 4GB of RAM allocated was actually fairly sluggish. Having run similar guests in VMware Workstation on the same machine, the disparity was somewhat surprising.
VirtualBox and the community
Compared to VMware or Parallels, VirtualBox is a bit rough around the edges. The UI is much more complex, and it can be tricky find out how to do simple things — like provide a ISO image to create a new guest OS. It doesn't provide "wizards" for installing common guests like Windows 7 or Ubuntu, which VMware and Parallels do. It does, however, have the advantage of being (mostly) free software, so it is open to community improvements — if the community is willing to work on Oracle's terms, of course.
According to the VirtualBox site, contributors are required to submit patches to Oracle employees (the site says Sun employees, but they're all Oracle employees now) and sign the contributor agreement to assign joint copyright ownership. Again, this hasn't been updated since Oracle took over, so it's still the old Sun Microsystems agreement which gives the company the right to relicense anything it likes, though it does guarantee that any contributions the company makes available will also be released under a FSF or OSI approved license. Note that it doesn't promise to make all of VirtualBox available under one of those licenses — just the contributions that it has received.
Alternately, contributors can choose to submit patches explicitly under the MIT license in lieu of signing the contributor agreement. In any case, only Oracle employees will actually be the ones making commits to VirtualBox's repository.
The move to an extension architecture is better for the community in that those who don't wish to sign the contributor agreement or license their contribution under a non-reciprocal license can in many cases simply write an extension. The company has not yet released any example code for extensions that contributors can follow but the SDK documentation [PDF] has been updated to reflect the new architecture.
Overall, VirtualBox 4.0 represents a fairly nice update. It could use a bit of improvement, but it seems to be on the right track. Though its performance is not always stellar, it's certainly good enough in most cases for users who want to test a Linux distribution before installing, or who have to run Windows for one or two applications.
to post comments)