Why are there so many open source processing virtualization projects?

Why are there so many open source processing virtualization projects?

Summary: When we take a look at each of the technologies, what becomes clear is that many people are grappling with how to make the most use of powerful industry standard microprocessors from Intel, AMD and others.


The virtualization community has been hearing quite a bit about KVM or Kernel-based Virtual Machine since it was included in Version 2.6.20 of the Linux kernel. It was interesting that this technology was included in the kernel relatively shorty after it first emerged while Xen still has not been included.

This means that KVM has joined the ranks of UML (User Mode Linux), OpenVZ (the open source version of SWsoft's Virtuozzo), Xen and a few others as different forms of virtual processing software. The question that immediately comes to mind is why is there so many of these virtualization projects in the open source community today?

Different tools for different needs

When we take a look at each of the technologies, what becomes clear is that many people are grappling with how to make the most use of powerful industry standard microprocessors from Intel, AMD and others. Let's take a quick look at each of the three projects that have been mentioned and try to make some sense of why they exist. For those who favor some other virtualization project, I know that many such projects exist. I just don't have the space to examine them all in this post.

  • Operating system partitioning - UML and OpenVZ can both been seen as ways to segment the resources managed by a single operating system to make it possible for individual applications or workloads to be isolated from one another. Each workload runs in its own "virtual server." Since there is really only one copy of the operating system running, this approach is very efficient. This approach works well if the organization has no need to mix operating systems on a single machine. UML and OpenVZ (and it's commercial cousin SWsoft's Virtuozzo) fit into this category.
  • Operating system-based virtualization - KVM is a Linux kernel module that supports full virtualization, that is it can run guest operating systems as tasks under a host operating system. The guest operating systems can be another copy of Linux or a copy of Windows. KVM requires that the microprocessor includes either Intel VT or AMD-V. In this case, a general purpose host operating system, Linux, is managing the underlying system. This makes a great deal of sense when the majority of applications all run under a single operating system.
  • Para virtualization - Xen manages the underlying physical system and allows Linux, Solaris, NetWare, FreeBSD, OpenBSD, NetBSD and/or Windows guest operating systems to run on a Xen hypervisor. In this approach the general purpose operating systems (Linux and Windows in this case) are all guests. Hypervisors are very small, highly optimized operating systems that are designed from the ground up to host other operating systems rather than being general purpose.

Interesting side note

What's interesting is that Xen, which has been aiming for Linux kernel inclusion for nearly two years has not become part of the Linux kernel. KVM, which was created and is maintained by technology start-up Qumranet, has quickly part of the kernel.

Quick Summary

It appears that each of these approaches has its place. Each is targeting a different set of user requirements. Each may have its place in an organization's data center.

KVM Developer Conference

If you're a developer and interested in learning more about contributing to the KVM project, Qumranet is hosing a KVM Developer Forum. Here's a pointer to the event. http://www.qumranet.com/KVMForum2007.php This conference, by the way, is intended to be a purely technical event for developers who are currently using KVM for a project or are interested in doing so.

Topics: Linux, Open Source, Operating Systems, Virtualization


Daniel Kusnetzky, a reformed software engineer and product manager, founded Kusnetzky Group LLC in 2006. He's literally written the book on virtualization and often comments on cloud computing, mobility and systems software. In his spare time, he's also the managing partner of Lux Sonus LLC, an investment firm.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • some nuances

    Generally you are right -- different projects exists because they are from the different classes, implementing different approaches to virtualization.

    Still, there are some nuances:

    1. UML is para-virtualization in fact, have nothing in common with OpenVZ (aka partitioning, aka containers). Quick test: in partitioning/containers all instances are running on top of the single OS kernel, while UML runs Linux kernel for each guest instance, and the host system Linux kernels acts as a hypervisor for those.

    2. To me, "Operating system-based virtualization" is a strange term for technology employed by KVM (I guess more correct term would be 'hardware-assisted virtualization' -- as in Intel VT or AMD V).

    3. Also, KVM has some support for running paravirtualized Linux guests, so it's really more like Xen, the only differences are:

    * KVM started from hardware-assisted approach, while Xen started from para-virtualization (because back then there was no hardware like Intel VT or AMD V) -- but they both employ both techniques (para-virt and hardware-assisted).

    * KVM is in the mainstream (a.k.a. vanilla) Linux kernel (because it was cleaner and simpler, thus easier to merge), Xen is not there and will not be (looks like).

    * Currently Xen is more mature, KVM is still work-in-progress. This will change of course.

    Finally, again, you are right, there is a place for different solutions -- it all depends on your needs. For example, when it comes for disk I/O speed, para-virtualization or hardware-assisted solutions (like Xen, KVM, VMware, for that matter) are having noticeable overhead, which shows for, say, databases, while partitioning solutions (OpenVZ, Solaris Zones) do not suffer here.
    • Thanks for the amplification

      Thanks for adding those ideas to the discussion.

      Dan K