|(Already registered? Log in)|
Virtualization has made a lot of progress during the last decade, primarily due to the development of myriad open source virtual machine hypervisors. This progress has almost diminished the barriers between operating systems. There are mainly two types of virtualizations; Software Virtualiztion and Hardware Virtualization. Up until recently, the focus always has been on softwareemulated virtualization.
KVM is short for Kernelbased Virtual Machine and makes use of hardware virtualization, i.e., you need a CPU that supports hardware virtualization, e.g. Intel VT or AMDV. Connsidering the time line of virtualization techniques, KVM is a relative newcomer. Several incumbent open source methods exist today, such as Xen, Bochs, UML, Linux VServer, and coLinux, but KVM is receiving a surprising amount of exposure now. KVM is a unique hypervisor. It consists of a loadable kernel module that provides the core virtualization infrastructure and a processor specific module. Using KVM virtualization, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc. The kernel component of KVM is included in mainline Linux. KVM is a relatively new and simple, yet powerful, virtualization engine, which has found its way into the Linux kernel, giving the Linux kernel native virtualization capabilities. Because KVM uses hardwarebased virtualization, it does not require modified guest operating systems, and thus, it can support any platform from within Linux, given that it is deployed on a supported processor.
First, you need a processor that supports virtualization. For a more detailed list, you can refer xensource wiki. You can tell whether your system supports virtualization by looking at /proc/cpuinfo. This file specifies whether the vmx (Intel) or svm (AMD) extensions are supported. A wide variety of guest operating systems work with KVM hypervisor, including many flavours of Linux, BSD, Solaris, and Windows Operating Systems. A modified version of Qemu can use KVM to run Mac OS X.
In many ways, VMware is a groundbreaking technology. VMware manages to fully virtualize the notoriously complex x86 architecture using software techniques only, and to achieve very good performance and stability. As a result, VMware is a very large and complex piece of software. KVM, on the other hand, relies on the new hardware virtualization technologies that have appeared recently. As such, it is very small (about 10,000 lines) and relatively simple. Another big difference is that VMware is proprietary, while KVM is open source. KVM will, in the long run, greatly benefit from taking advantage of advancements in the kernel, without developers having to reinvent them, as is the case with Xen.
Xen is a fairly large project, providing both paravirtualization and full virtualization. It is designed as a standalone kernel, which only requires Linux to perform I/O. This makes it rather large, as it has its own scheduler, memory manager, timer handling and machine initialization.
KVM, in contrast, uses the standard Linux scheduler, memory management and other services. This allows the KVM developers to concentrate on virtualization, building on the core kernel instead of replacing it.
QEMU is a userspace emulator. It is a fairly amazing project, emulating a variety of guest processors on several host processors, with fairly decent performance. However, the userspace architecture does not allow it to approach native speeds without a kernel accelerator. KVM recognizes the utility of QEMU by using it for I/O hardware emulation.
However, KVM already is further ahead than other hypervisor solutions in some areas and surely will catch up in other areas in the future. KVM is the best technology going forward for open source virtualization.
With the introduction of KVM into the Linux kernel, future Linux distributions will have builtin support for virtualization, giving them an edge over other operating systems. There will be no need for any dualboot installation in the future, because all the applications you require could be run directly from the Linux desktop. KVM is just one more of the many existing opensource hypervisors, reaffirming that open source has been instrumental to the progress of virtualization technology.
The above is a very rough outline of KVM Virtualization, and if you have any questions, we would be happy to talk to you! :)