Kernel Virtual Machine
Kernel-based Virtual machine (KVM) most of you may come from different background : you might be an student or IT fresher or IT professional or you might be actually working on Linux and wanting to learn KVM.
In order to set a good base on background for learning KVM, this article is an introduction to virtualization. This will give you everything that is required to be learned about virtualization from a fundamental perspective.
So what is Virtualization?
Combining or dividing of computing resources i.e. your hardware, server, hardware resources such as CPU, the RAM, memory, the hard disk and so on. So combining of multiple resources or dividing of resources or single server resources across many virtual machines.
Now running multiple operating system environments on a single machine (hardware) for Example server. This means you have a single server hardware and you run multiple operating systems on it. This is what is actually virtualization.
Sharing the same CPU,RAM, HDD’s etc. from different hardware (servers) for providing more computing power.
So virtualization in short means running multiple operating system’s and making maximum optional use of the available resources of one particular server.
Now, let’s see what are the types of the virtualization?
There are different types of virtualizations :
Hardware / Platform Virtualization:
This means the subdivision of hardware resources- the server hardware is called the ? Host machine and the virtual machine i.e. the instance of the operating system running on that host machine is called ? Guest.
Here network resources are subdivided by network resources , we mean the everything related to networking. So it is a creation of virtual networks or V LAN’s i.e. Virtual Local Area Networks.
Here the standard application is grabbed in a container. Container you can imagine something like a vessel in which you put some liquid to simulate the required platform,so that forms application, it is put into a container. It operates within that domain.
The last type of virtualization is:
This moves the clients workload to the data center for example: thin client’s.
In thin client’s the application actually residing on the server which may be located in the data center, but only the GUI is accessed via the clients and the key strokes and mouse strokes are transmitted between the thin client and the server. So all processing also happens on the server.
So in effect the person using the client gets the feeling that he or she is using the desktop as you use a normal desktop.
We are going to next part- Virtual machines (VM)
Now what are virtual machines?
A virtual machine is a software that emulates a real machine. It has all the characteristics as that of a real machine. It has it’s own operating system. It uses the hardware resources of the server that it is hosted on.
So although it is a virtual machine or image of the real machine it has it’s operating system and this operating system helps it to make use of the underlying hardware resources i.e. the resources of the server.
As we learnt earlier, this could be the CPU, the RAM, the HDD or the DVD drive so on.
What are the types of Virtual Machines(VM’s)
There are 2 key types of virtual machines-
1.Process virtual machines and
2. System Virtual Machines
1. Process Virtual Machines
These are also known as “Application VM”. These runs as a single program or a single process so in short a single program is run as a single process. So this program initiates and terminates with the process. When the process starts the program starts and when the process ends the program ends or terminates.
Process Virtual Machine provides platform independent development environment for example:- Java Virtual Machine(JVM)
Since it is a single process based on the virtual machine it is a platform independent and off course helps in development environment so the best example is this i.e. Java Virtual Machine.
You may be aware that Java is platform independent it is mostly browser based and can be run through browser or any operating system. So Java applets can be run through a browser on any operating system that might be windows or Unix or Linux. etc.
2. System Virtual Machines :
The System Virtual Machines are virtual machines which provides platform of a complete system that supports process of completion of operating system execution.