User: Password:
Subscribe / Log in / New account


A look at VirtualBox 4.0

January 5, 2011

This article was contributed by Joe 'Zonker' Brockmeier.

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

[VirtualBox manager]

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.

[VirtualBox settings]

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.

[VirtualBox create VM]

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 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.

Comments (5 posted)

Brief items

Quotes of the week

I think people constantly underestimate the virtue of Python and CPython simplicity. Projects that depend on a couple of genius ubergeeks die when the ubergeeks leave. The executable-pseudocode simplicity of the language makes it a favorite for scientific programming, spilling over into financial programming. The simplicity of the code allows competent students (and non-CS major adults) become developers.
-- Terry Reedy

It is no longer vital to work to keep Emacs small. Eight Megabytes Ain't Constantly Swapping any more. However, it remains desirable not to bloat the Emacs Lisp Reference Manual without some benefit.
-- Richard Stallman

Comments (none posted)

Bombono DVD

Bombono DVD 1.0 has been released. See the website for details. New features include transcoding from a variety of formats, previewing any video format, motion menus, subtitles support, bitrate calculator, and special menu actions like "Play All", "Next Video", and end actions for videos. LWN covered Bombono last May.

Comments (none posted)

Gnucash 2.4.0 released

The Gnucash 2.4.0 release is out at last. The biggest change in this release is the ability to store its data in an SQL database; SQLite, MySQL, and PostgreSQL are supported. LWN looked at Gnucash 2.4 last May.

Full Story (comments: 1)

KDE Software Compilation 4.6 RC2

The KDE Community has released the second release candidate for KDE SC 4.6. This release includes the Plasma desktop, applications and the development platform.

Comments (none posted)

Linux Desktop Testing Project (LDTP) 2.1.0 released

The Linux Desktop Testing Project aims to produce a high quality test automation framework for the Linux desktop. Version 2.1.0 adds documentation files from LDTPv1 and updated accordingly, search object name as unicode character and multiline, plus performance enhancements and bug fixes.

Full Story (comments: none)

Spamassassin Newsletter

Warren Togami has announced a low traffic Spamassassin mailing list. The list will be announcements only, sort of like a Spamassassin Weekly News, except that posts are likely to be less than weekly. The list is hosted on and will be somewhat Fedora/Red Hat-centric. There's also a new blog, Spamassassin Tips. Although somewhat distribution-centric, the content is likely to be of interest to anyone setting up or running Spamassassin.

Comments (none posted)

Newsletters and articles

Development newsletters

Comments (none posted)

Indamixx 2, Music-Focused Tablet Powered by Linux, Unveils Beta Program (Create Digital Music)

The Create Digital Music blog has a look at the MeeGo-based Indamixx 2 audio tablet; one of the first MeeGo tablets available. "The software bundle is the main source of value here, since the tablet you could buy separately. The beta includes various commercial, proprietary software, including file exchange support for Ardour, full copies of Renoise, energyXT, and superb plug-ins from LinuxDSP. There’s also software that, while free, could take a significant investment of time to set up, even for someone with some familiarity with Linux. That includes customization, tweaking, and configuration of the MeeGo Linux operating system, and packages for things like JACK setup. The beta also includes extras like access to a streaming server, accessories, and pre-installation of a multi-boot configuration. As Trinity has pushed before, one audio output option is HDMI, which provides multichannel outs without the need for a dedicated card (provided you have something to which you can connect HDMI on the other end)."

Comments (1 posted)

Karlitschek: Beta of the Qt Creator Buildservice Plugin released (Project Bretzn)

Over on his blog, Frank Karlitschek writes about Project Bretzn, which is targeted at making it easier for developers to get their applications built and made available for multiple platforms. "The plugin lets you perform all the actions required to get data sent to the various build services and publishing sites, by contacting the server part, which then distributes the information to the appropriate places. The implementation of this also prompted [amending] the Attica library with new features. As some will already know, Attica is the full featured implementation of a OCS [Open Collaboration Services] client library built by KDE which is now officially included in the MeeGo platform as well."

Comments (none posted)

Season of KDE 2010 (KDE.News)

KDE.News has a rundown on the projects that seven students worked on as part of the "Season of KDE" (SoK) initiative. Now in its fourth year, SoK provides mentoring for students who were unable to get into the Google Summer of Code. "Finally, Yuvraj Tomar worked on analyzing and improving KDE startup time. The first step was to analyze what was slowing down startup. When the research and analysis was done, he had some discussions with his mentors and with KWin and kdm developers, and then started coding. His results are pretty clear: on a test machine, startup went from about 30 seconds to barely 19. That's a remarkable improvement!"

Comments (1 posted)

Marques: Kick off for GNOME:Ayatana Project…

On his blog, Nelson Marques writes about the GNOME:Ayatana project which is bringing the Ubuntu indicators and Unity UI to openSUSE via the openSUSE Build Service (OBS). "Indicator-sound has also been fixed and no longer requires the nasty hack in the previous package. Since I'm not an Ubuntu user, neither I have extensive experience on their Desktop, I'm not sure if the functionality present so far in the indicators is the one offered by Ubuntu. I plan to run a Open Beta on the Ayatana software repository during the last Milestone of Factory to all Factory users to collect more data and improve the packages, at least the indicators, as in the present since I have ATI hardware I don't have FireGL enabled on Factory, so I can't really push much on Unity and test it for the time being."

Comments (5 posted)

Remnant: The Importance of Being Tested

On his blog, Upstart developer Scott James Remnant looks at Upstart's test suite and how it has found bugs in other parts of the Linux system. "One day these test cases started failing without warning. Investigation showed that they passed fine under older kernels, but with the newest kernel update to Ubuntu, they failed. [...] The inotify subsystem in the kernel had undergone a radical overhaul and rewrite. Rather than being its own code, it was completely rebased onto the new fsnotify system. Fortunately I was aware of this, and after careful checking that it was indeed the kernel behaviour that was now incorrect (and that it wasn't incorrect before), I got in touch with the Eric Paris, the author of the new code, and was able to give him minimal example code to replicate the problem."

Comments (9 posted)

Page editor: Jonathan Corbet
Next page: Announcements>>

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds