There are almost more virtualization tools out there today than even Wikipedia can count. KVM, however, stands out among them as perhaps the only free, non-commercial and open source hypervisor designed for enterprise-grade performance. And it's come far in its (comparatively) short life -- so far, in fact, that it may be time to consider it as a virtualization solution for the desktop as well as the server.

KVM, which stands for Kernel-based Virtual Machine and has nothing to do with KVM switches, is a somewhat younger project than most of its major competitors including VMware's hypervisors, VirtualBox and Xen. It's also different from many other virtualization tools because it focuses on deep integration with the kernel itself, theoretically providing performance advantages over hypervisors that exist mainly in userspace.

KVM certainly isn't the only free or open source virtualization platform in existence, but it's the open source ecosystem's only major hypervisor that's not associated with specific commercial interests. Xen is also free and open source, but it's owned by Citrix; much of the VirtualBox code is open, but some of it is proprietary and belongs to Oracle; and VMware is essentially closed source.

KVM Today

For much of its history, KVM was playing catch-up to older and more mature virtualization products. But it's gradually come into its own over the last few years, and now supports a variety of advanced features, including but not limited to:
  • CPU virtualization extensions
  • "Live migration" of running virtual machines
  • USB device passthrough
  • CPU and PCI hotplugging

Desktop KVM

KVM developers typically have focused squarely on optimizing the product for servers and large-scale deployments, which makes sense in the age of the cloud. Given the maturity that the product has reached, however, it's perhaps time to consider it a viable choice as a desktop virtualization platform as well.

On its own, KVM is not especially user-friendly.  On most Linux distributions the tools that ship with it by default work only on the command line, and configuring KVM guests by hand is complex and less than intuitive.

With the assistance of tools such as virt-manager, however, setting up a KVM virtual machine to run Windows, Linux or a variety of other operating systems as guests is pretty quick and simple.  Here are a few screenshots to prove it:

virt-manager create virtual machine

virt-manager create virtual machine

Running KVM virtual machine in virt-manager

Granted, by most measures tools such as VirtualBox are simpler to use than virt-manager and make it easier to configure advanced features. Nonetheless, setting up a KVM guest in virt-manager is not beyond the realm of possibility for a reasonably determined desktop user. (I won't say for a non-geek, because non-geeks generally don't run virtual machines in the first place, at least not that they know about.)

And KVM's viability as a virtualization infrastructure for desktop Linux users is important, precisely because KVM is the only open source, full-featured, independent hypervisor out there. If distributions decided to take it seriously as a tool for the desktop as well as the server, it would mean they could offer out-of-the-box virtualization solutions as part of their standard packages, which would be pretty monumental, since currently no mainstream desktop operating system -- whether open or closed source -- comes with a complete virtualization tool built-in.

Regardless of whether KVM gains momentum on the desktop, its main role, of course, will almost certainly remain on the server.  But that doesn't mean its significance for the desktop world should be written off.