Originally posted by kiraitachi
View Post
Native (type 1) hypervisors like VMware ESX/ESXi and Microsoft Hyper-V load "beneath" the host operating system. Here, the hypervisor is in control of the hardware. The host OS, sometimes called the "parent," manages the hypervisor, but is not in control of the hardware. A guest OS runs directly on the hypervisor rather than within the host OS.
KVM is something of an anomaly. Its hypervisor is also a series of kernel modules, loaded and managed by the host OS. When these modules load, for all practical purposes they "own" the hardware, which would appear to be form of native (type 1) virtualization. However, the rest of the Linux kernel does not become subservient to the KVM modules, and the host OS can still control the hardware directly. Thus, KVM is more correctly classified as hosted (type 2) virtualization like VMware Player and VirtualBox.
The difference between KVM and these other type 2 virtualization products is that KVM is built into the kernel. KVM provides the same functionality as the proprietary ones, and it's always up-to-date whenever you get a new kernel. VirtualBox handles kernel updates well, having integrated its module handling into DKMS. VMware absolutely sucks balls. Every kernel update seems to uncover bugs in their crappy code and you have to hunt around for patches before manually compiling the modules.
KVM is not very popular in desktop-land because it has lacked decent configuration tools. VirtualBox is probably the winner here: its GUI is chock full of settings. VMware Player's GUI is really basic; to do more advanced stuff requires reading many pages of documentation to learn the command-line tools. VMware's saving grace is its Unity mode (nothing at all to do with Ubuntu's Unity). With VMware Unity, guest OS windows appear directly on the desktop and in the host taskbar -- very cool. Both tools have decent clipboard integration and guest-host file system integration.
QEMU started life as an emulator for many different kinds of processors. It still is, but mostly these days it's used as a mechanism to manage KVM. Virt-Manager (with libvirt) are specifically designed to manage KVM, but it's quite GNOMEish, so you won't get a very KDE-like experience with it. Recently, the Spice project has begun adding desktopish functionality to KVM-hosted virtual machines through a well-defined, open protocol and API. Eventually I'd like to move off VMware Player and over to KVM plus Spice. Although I will miss Unity, I hate Player's wankery. Despite this, I am not a VMware-hater. I think their new NSX initiative, for full network virtualization combined with standards-based software-defined networking (SDN), is a real winner. You better watch out, Cisco. Your lunch is about to be eaten.
Comment