VirtualBox makes it easy to try Linux distros without replacing your current operating system or engaging in a game of reboot leap frog.
But things are about to get even easier. Soon you won’t need to install the VirtualBox Guest Additions package to get a fully integrated Linux experience with your host OS.
Guest additions are coming to the Linux kernel.
VirtualBox Guest Additions In the Linux Kernel
The biggest drawback to testing Linux distros in VirtualBox right now is a lack of integration. Regardless of whether you boot up a live CD or an installed virtual machine, some key features don’t work ‘out of the box’.
So, to get better performance and to enable features like folder sharing, seamless mode and shared clipboard, most of us currently install the VirtualBox Guest Additions package.
This package bundles together device drivers, system utilities and kernel modules which allow the “guest” OS (the one being tested) to interact and/or integrate with the “host” OS (the one VirtualBox is running on).
Linux distributions like Ubuntu make it easy to install VirtualBox guest additions.
You just launch your virtual machine, let it load, go to ‘Devices’ > ‘Insert Guest Additions CD’ and then follow the on-screen prompts (Ubuntu will show you a dialog asking you to ‘run’ the guest additions installer).
A quick reboot is all it taken for most of these extra features, including screen resizing, shared folders and USB control, to start working.
But the lazy soul within me is stoked to hear that this process will soon be a thing of the past.
Coming to the Linux Kernel
Work to add features in VirtualBox Guest Additions to the Linux kernel is underway by kernel developers. The first fruits of their labor will appear in Linux 4.16.
These additional features are licensed under the GPL and sit in the kernel tree. That means no additional proprietary code or binary blobs are loaded on your system
Why does this matter?
Well, it means the next time you boot a Linux distribution with the Linux 4.16 (or later) kernel, VirtualBox Guest Additions will be already installed. You won’t need to enable, add, install or tweak anything (in theory).
Basic system integration features like seamless mode and copy and paste between guest and host will “just work”. Devs even plan to support shared folders out of the box in a future kernel release.
This is a huge win; it means more people will be able to cautiously sample Linux distros and get a better first impression of them. It will also make developers’ lives easier by allowing them to quickly test, deploy and iterate between multiple VMs without jumping through hoops for each and every one.
Not every extra feature will come baked in to the Linux kernel right away, but things like automatic resizing, seamless mode, bidirectional clipboard, drag and drop, and better overall performance, might.
Heck, maybe even Wayland will play nice at some point! ;)
Although useful for GUI desktops baking the various features into the Linux kernel itself also has real advantage for those virtualizing Linux server releases.
Ubuntu already sort of does this (but it’s buggy)
While writing this post I discovered that a number of Linux distributions, including Ubuntu and Linux Mint, already ship with a custom version of guest additions enabled in their image.
That approach is commendable, and provides a better first impression. But it’s also a bit of a hinderance; some users find the ‘preinstalled’ versions lacking in features, and then encounter errors and issues when trying to install the regular version of guest additions.
Having the same modules ship as part of the Linux kernel itself, and different versions packed as an add-in by distro vendors, is, to my mind at least, the preferred situation.
Thank You Red Hat
The work is spearheaded by Red Hat (they’re awesome, aren’t they?) so if you think you’ll really enjoy having this support enabled OOTB, do send some Twitter hearts and Facebook thumbs their way.