hypervisor and what does it do? - hypervisor

I understand servers are set up to run virtual machines with user applications in cloud settings and will have a hypervisor instead of a host operating system, I was curious why is the hypervisor use in place of the host operating system?

The hypervisor is used to do the abstraction between the physical and the virtual resources. In other words, it is responsible to create a virtualized layer and share the hardware components (CPU, RAM, NIC, storage) to the virtual machines that will be used. Therefore, it is a lot simpler to centralize and manage multiple sources of heterogeneous elements. It is possible to deploy two types of hypervisors:
Type 1 Hypervisor:
There is no actual operating system installed on the bare metal server except the software used to deploy the hypervisor. It is especially used in an enterprise context considering that you maximize the resources to share (you do not have the limitation of running an underlying operating system), but it also possible to deploy one in a home lab if you have the required hardware. A classic example is a VMWare ESXi host.
Type 2 Hypervisor:
It consists of installing the hypervisor on top of the actual operating system (Windows, Linux, MacOS). It is used especially for testing, deploying simple services and to extend your software capabilities (you can run multiple different operating systems simultaneously). A classic example is Oracle’s Virtual Box.

Related

Why Xen requires an OS though it is a Type I Hypervisor?

Xen is a Type I hypervisor that means it can run directly on hardware so why do we need to install Ubuntu or CentOS or any OS to run Xen? It should run directly on the hardware as it's a Type I hypervisor.
The reason that an OS is needed is because Xen itself does not directly provide any mechanism for creating/managing virtual machines. Because these tasks require things like creating disk images, editing configuration files, setting up networking etc. It would be wasteful for the Xen project to reimplement all of this functionality when it is already included in widely-used OSes like Linux.
The only way to interact with Xen is by making hypercalls, some of which can only be made from the dom0 (Domain 0) VM. As noted in the Xen wiki this means that the hypervisor can be left to just the tasks which only it can perform - checking page tables, allocating resources for new domains, and scheduling domains.
I'm not aware of any type 1 hypervisor which does not need an OS in one way or another - many of them use Xen under the hood, with a custom OS. Things like VMWare ESXi (which does not use Xen) bundle their own OS as part of the distribution so still have an OS running on top of the hypervisor to provide needed functionality.

What is the difference between Full, Para and Hardware assisted virtualization?

I am going through the topic of virtualization and i am totally sucked up understanding the basic concept, Wikipedia does provide some relevant information, but it is not good enough for me to understand the basic idea. The concept will be of 2 to 3 line, but neither I am able to find them on net, nor on the book.
I will be pleased if someone gives me a basic understanding of these three types. I am well aware of virtualization and understand it well, but these 3 types...
Paravirtualization is virtualization in which the guest operating system (the one being virtualized) is aware that it is a guest and accordingly has drivers that, instead of issuing hardware commands, simply issue commands directly to the host operating system. This also includes memory and thread management as well, which usually require unavailable privileged instructions in the processor.
Full Virtualization is virtualization in which the guest operating system is unaware that it is in a virtualized environment, and therefore hardware is virtualized by the host operating system so that the guest can issue commands to what it thinks is actual hardware, but really are just simulated hardware devices created by the host.
Hardware Assisted Virtualization is a type of Full Virtualization where the microprocessor architecture has special instructions to aid the virtualization of hardware. These instructions might allow a virtual context to be setup so that the guest can execute privileged instructions directly on the processor without affecting the host. Such a feature set is often called a Hypervisor. If said instructions do not exist, Full Virtualization is still possible, however it must be done via software techniques such as Dynamic Recompilation where the host recompiles on the fly privileged instructions in the guest to be able to run in a non-privileged way on the host.
There is also a combination of Para Virtualization and Full Virtualization called Hybrid Virtualization where parts of the guest operating system use paravirtualization for certain hardware drivers, and the host uses full virtualization for other features. This often produces superior performance on the guest without the need for the guest to be completely paravirtualized. An example of this: The guest uses full virtualization for privileged instructions in the kernel but paravirtualization for IO requests using a special driver in the guest. This way the guest operating system does not need to be fully paravirtualized, since this is sometimes not available, but can still enjoy some paravirtualized features by implementing special drivers for the guest.
In the case of hardware assisted virtualisation, the virtualisation is designed in. Instruction set provides instructions for partitioning the host. See VT-x technology of Intel as an example. So that the hypervisor works directly with hardware without using any operating system to acces it and provide full virtualisation

Xen for office use and network boot

I'm trying to understand if Xen can fit my needs:
I need to have a Windows 7 image that I can copy to different machines (with different hardware) to have kind of default installation for every new entry in the office and faster replacement.
Is that possible to use the hypervisor for this?
Is that possible to use network boot as well of the hypervisor not to install Xen on every machine?
Edit: Will I be able tu use multiple displays?
Thanks.
It is possible if and only if you have installed Xen on every machine on your network that is not a good idea. Xen and other type-1 hypervisors are usually used to multiplex a high-end server into a set of virtual machines. Xen is also known for its para-virtualization technique which is not applicable for Windows.
Have you ever thought of VDI (Virtual Desktop Infrastructure) solutions? It enables you to have all your operating systems on a single machine and transfer the desktop to the clients.

What is the difference between hardware and hardware assisted virtualization?

I am really new to virtualization , i have read in some places that hardware virtualization is also referred as hardware assisted virtualization , is it true or false.
From my understanding hardware virtualization means Hardware itself has some embedded software which is helpful in managing systems resources between OS , is it right.
And if possible tell me what are the different types of Virtualization?
Different types of virtualization
In the traditional x86 architecture, operating system kernels expect direct CPU access running in Ring 0, which is the most privileged level.
Software Virtualization
With software virtualization, guest operating systems cannot run in Ring 0 because the VMM sits there. The guest operating systems must therefore run in Ring 1, but there's a catch: Some x86 instructions work only in Ring 0, so the operating systems must be recompiled to avoid them. This process is called paravirtualization, and it is impractical — especially if the source code for the OS is not available. To get around this, VMMs traps these instructions and emulates them, which unfortunately results in an enormous performance hit: Virtual machines can be significantly slower than real physical ones.
Hardware Assisted Virtualization
Thus, Intel and AMD have introduced their new virtualization technologies, a handful of new instructions and — crucially — a new privilege level. The hypervisor can now run at "Ring -1"; so the guest operating systems can run in Ring 0. There's no need for paravirtualization, the VMM does less work, and the performance hit is reduced
Wiki puts it very nicely
Virtualization
The term "virtualization" was coined in the 1960s to refer to a virtual machine (sometimes called "pseudo machine"), a term which itself dates from the experimental IBM M44/44X system. The creation and management of virtual machines has been called "platform virtualization", or "server virtualization", more recently.
Platform virtualization is performed on a given hardware platform by host software (a control program), which creates a simulated computer environment, a virtual machine (VM), for its guest software. The guest software is not limited to user applications; many hosts allow the execution of complete operating systems. The guest software executes as if it were running directly on the physical hardware, with several notable caveats. Access to physical system resources (such as the network access, display, keyboard, and disk storage) is generally managed at a more restrictive level than the host processor and system-memory. Guests are often restricted from accessing specific peripheral devices, or may be limited to a subset of the device's native capabilities, depending on the hardware access policy implemented by the virtualization host.
Hardware-assisted virtualization
In hardware-assisted virtualization, the hardware provides architectural support that facilitates building a virtual machine monitor and allows guest OSes to be run in isolation. Hardware-assisted virtualization was first introduced on the IBM System/370 in 1972, for use with VM/370, the first virtual machine operating system. In 2005 and 2006, Intel and AMD provided additional hardware to support virtualization. Sun Microsystems (now Oracle Corporation) added similar features in their UltraSPARC T-Series processors in 2005. Examples of virtualization platforms adapted to such hardware include Linux KVM, VMware Workstation, VMware Fusion, Microsoft Hyper-V, Microsoft Virtual PC, Xen, Parallels Desktop for Mac, Oracle VM Server for SPARC, VirtualBox and Parallels Workstation.
Also refer to the following links for more explanations:
http://searchvmware.techtarget.com/definition/hardware-virtualization
http://www.anandtech.com/show/2480

running different versions of a kernel

Now the biggest disadvantage in running operating system virtualization is that the user is only able to run the same operating system on all virtualized instances. At least is it possible to run different versions of the same kernel ?
The kernel is in charge of managing and abstracting real resources (CPU, devices). So you cannot have several kernels at once on a machine.
What you might have is an hypervisor (which is a sort-of kernel), providing multiple virtual machines. On each of them, you would run a different kernel. You could for example use Xen as an hypervisor (and you could nest them).