A user doing daily routine work in front of a virtualized system may not be aware of the fact that there is some “illusion” taking place right before his eyes. He may be running Linux applications one moment and Windows applications the next while using exactly the same machine the whole time, without being conscious that behind the scenes his work is serviced by different operating systems coming from machines other than the one he is working on that particular moment. It’s as if everything is taking place in just the one device his hands are currently busy with. This is a typical scenario encountered while actively engaging with a virtualized system.
The illusion experienced by the user would impossible without a special software entity installed right at the heart of the system: the hypervisor. The hypervisor is the “magician” that makes virtualization work. In reality there is no magic involved — just honest-to-goodness technical work; the hypervisor manages many things: processor, memory, resource allocation, multiple instances of a single operating system, even multiple operating systems running simultaneously.
There are two types of hypervisors: native or bare-metal hypervisors (a.k.a. Type 1 hypervisors) and hosted hypervisors (otherwise called Type 2 hypervisors).
The first type controls the hardware that hosts it and manages the operating systems that the hardware accommodates as guests. If one were to draw two rectangles stacked one over the other, the bottom layer represents the host machine (server hardware), while the one directly on top of it is the hypervisor. Adding three smaller rectangles to sit on an upper layer above the hypervisor would be comparable to connecting three virtual machines to the underlying hardware through the hypervisor. A hypervisor set up this way is Type 1 (see image at the top of this blog post).
The second type provides virtualized input/output devices and memory management from the operating system that hosts it. If one were to add a new rectangle to the stack described in the previous paragraph and place it between the server hardware and the hypervisor layers, the new rectangle layer would represent the operating system providing virtual services to the virtual machines at the topmost layer through the hypervisor. This is a Type 2 hypervisor setup, and a graphical illustration of it is presented Above.
The basic difference between a Type I and Type II hypervisor, as the illustrations show, lies on where the hypervisor runs from. Type 1 runs directly on the server hardware while Type 2 runs on a host operating system. However, there is apparently no formal definition of Type 1 and Type 2 hypervisors based on established standards.
XenServer (from Citrix) and ESXi (from VMWare) are typical examples of Type 1 hypervisors, while VMWare Server, Microsoft VirtualPC, and Sun VirtualBox are those of Type 2.
– Founder of Key4ce & FuseCP.
– More then 13 years of experience with Windows high availability and Microsoft Exchange.
– More then 13 years of experience with Linux and Unix.
– Open source enthusiast and a large contributor for multiple large Open Source projects.
My current main focus of attention is Geo-Clustering.