A hypervisor is a software process that abstracts the hardware layer from the operating systems allowing multiple virtual machines to run simultaneously.
A Hypervisor also known as Virtual Machine Monitor (VMM) can be a piece of software, firmware or hardware that gives an impression to the guest machines(virtual machines) as if they were operating on a physical hardware. It allows multiple operating system to share a single host and its hardware. The hypervisor manages requests by virtual machines to access to the hardware resources (RAM, CPU, NIC etc) acting as an independent machine.
Hypervisor is mainly divided into two types namely
Type 1/Native/Bare Metal Hypervisor
Type 2/Hosted Hypervisor
Type 1 Hypervisor : This is also known as Bare Metal or Embedded or Native Hypervisor. It works directly on the hardware of the host and can monitor operating systems that run above the hypervisor. It is completely independent from the Operating System.
The hypervisor is small as its main task is sharing and managing hardware resources between different operating systems.A major advantage is that any problems in one virtual machine or guest operating system do not affect the other guest operating systems running on the hypervisor.
Type 2 Hypervisor: This is also known as Hosted Hypervisor.
In this case, the hypervisor is installed on an operating system and then supports other operating systems above it. It is completely dependent on host Operating System for its operations While having a base operating system allows better specification of policies, any problems in the base operating system a ffects the entire system as well even if the hypervisor running above the base OS is secure.
A virtual machine, commonly shortened to just VM, is no different than any other physical computer like a laptop, smart phone or server. It has a CPU, memory, disks to store your files and can connect to the internet if needed. While the parts that make up your computer (called hardware) are physical and tangible, VMs are often thought of as virtual computers or software-defined computers within physical servers, existing only as code.
Virtualisation is the process of creating a software-based or "virtual" version of a computer, with dedicated amounts of CPU, memory and storage that are "borrowed" from a physical host computer - such as your personal computer and/or a remote server such as a server in a cloud provider's datacentre. A virtual machine is a computer file, typically called an image, which behaves like an actual computer. It can run in a window as a separate computing environment, often to run a different operating system or even to function as the user's entire computer experience - as is common on many people's work computers. The virtual machine is partitioned from the rest of the system, meaning that the software inside a VM cannot interfere with the host computer's primary operating system.
Here are a few ways virtual machines are used:
1. Building and deploying apps to the cloud.
2. Trying out a new operating system (OS), including beta releases.
3. Spinning up a new environment to make it simpler and quicker for developers to run dev-test scenarios.
4. Backing up your existing OS.
5. Accessing virus-infected data or running an old application by installing an older OS.
6. Running software or apps on operating systems that they were not originally intended for.
vSwitches are created under a virtualized server and enable VMs to communicate with each other and with external networks. Distributed virtual switching reduces administrative overhead by providing configuration consistency across all the hosts that are part of the distributed switch.
Virtual Network Function (VNF): VNF focus primarily on optimization of the network services, contrary to software-defined networking (SDN), which separates the control and forwarding plane for a centralized view of the network. VNF basically provides a virtual networking device that a customer can access and configure according to his security/access requirements. It is also possible that a group of virtual devices form a virtual network function, and is offered to the customer. Network Functions Virtualization (NFV) is different from VNF in the sense that the former is used by the service providers for virtualizing the SPs' networking functions.
Note: In Cisco's official version VNF represents a single virtual device. Some others use VNF and NFV interchangeably