The Word ‘Virtual’ according to Merriam-Webster means ‘being a hypothetical particle whose existence is inferred from indirect evidence’. Basically, it’s faking the presence of a particular substance by fooling the system to think that the required element is present there in spite of it being not there. So How does this concept used in the Computer Science, and how important the concept is, how it aligns with the latest cutting-edge technologies used in the Market and how they are being implemented! These are the few questions that I’ll be covering in today’s blog post. Let’s dive in.
Things you need to know in order to understand the concept
- Operating System is the heart of any device running User applications.
- An application runs on Hardware.
- In order to run any application, we need to install an OS which provides us with different functionalities but most importantly it provides a UI for Interaction.
- Hardware can’t understand the Application Instructions directly so there is something called Operating System in the middle of Application and Hardware, which convert the High-level Instruction code passed by the Application, into Assembly Code and then subsequent Binary Code which can be understood by the Underlying Hardware.
- Hardware only understands Binary (0 or 1). So whatever we pass it needed to be converted to this format for the Hardware to understand.
- There are different components for the conversion process such as Assemblers and Compilers/Interpreter.
- Server, a popular term in the Internet World, is nothing but a physical device with components similar to that present in a PC or Laptop.
- Except for the physical appearance, a Server is different from a PC as the first one is used particularly in Data Centres for networking purposes. It’s a frequently used word even for Virtualization, as the process itself is possible due to the presence of multiple servers.
Let’s go back about 15 years back when we had those box type PCs. Suppose you want to use a PC, then things one would typically do… Boot a disc, Install OS, Configure according to need, Install applications and use.
In such systems, the Hardware and OS used to be tightly bound. Means, in case the Hardware fails, by no chance can the OS be accessed and vice versa. There was no trick like taking the hard disk and putting it into another PC and run the OS, nothing like that was possible. These created some serious issues of Data Loss and the Data Migration between devices was not possible in case of failure.
The main issue was the tight coupling of the OS and Hardware, which in case of Personal Use is a good deal, but when one thinks from the Business point of view, it’s not so efficient. A majority of the computational power of a particular piece of Hardware goes waste, but Virtualization actually helps us utilize the unused resources.
In this process what we do is, we allow multiple OS copies to run onto a single piece of Hardware i.e. one can install Windows10, MacOS, Linux all three onto a single system without any issues. It not only saves the cost of a buying new servers but it also speeds up our Testing process as one can check the working of a personal app on a VM and later on uninstall it.
It’s as simple as that, you use the new VM (Virtual Machine – Like an actual machine, it provides storage, processing, and UI and can be installed on the top of an existing OS) and later delete it once work is done.
The concept of Virtualization is the basis of Cloud Computing. CC abstracts the application from the underlying OS and Hardware but in case of Virtual Machine, there is an abstraction on the level of OS, where it doesn’t have the idea about the underlying piece of Hardware. In order to understand CC, one must be clear with the concept discussed in the Blog.
Everything in Cloud, the Storage, Network, Software, Infrastructure or Applications provided by the vendors exists not on our system but on a distantly located Data Center, but with the Internet, we use it as if it was installed on our very own PC.
Google Docs is the best example to explain it, it has replaced Microsoft Office in the Industry due to functionalities like
- Multiple User Access at the same time
- Auto Save onto the drive so no fear of Information Loss
- Easy Sharing with customizable Privacy settings
All these make the Product superior to MS Word. These features have been incorporated due to Virtualization itself.
Separation of the underlying Hardware from Operating System
A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. Hence,
- In case of Hardware failure, the OS can easily be migrated onto another piece of H/W
- Even if one wants to take up a backup of the current system, then one can save the image of the OS using the hypervisor which can be used later
- It saves cost as we do not need to buy multiple Hardware devices for less intensive purposes.
Most Hypervisor Softwares available are free of Cost, but only when you go for the higher functionalities such as Automated Load balancing and various UI functionalities are charged heavily. As long as the user is not completely confident with the working, he must not opt for the paid versions.
Once the hypervisor is installed, we also need to install Management Software so that we could actually use the various OS installed. Just like we on our local system, by a click of a button, we can open up a system which runs like an individual machine. All the VMs installed on the hypervisors utilize the same Hardware memory and RAM, they are configured based on the user’s requirement. One must be really careful while configuring the VMs; we don’t want our main system to shut down because of lack of resources. Expert Guidance is advised.
Types of Hypervisors
Hypervisor Type 1:
- The hypervisor is directly installed onto the Hardware.
- Management S/W is installed and various OS’s are installed on the top of it.
- This type is mainly used in Servers used at Data Centres.
- A Type 1 hypervisor (also called a bare metal hypervisor) is installed directly on physical host server hardware just like an operating system.
- Examples of this type of hypervisor include Oracle OVM for SPARC, ESXi, Hyper-V, and KVM.
Hypervisor Type 2:
There is one existing OS like our own PC, on the top of it we want to run multiple OS for personal purposes. That can be done with this type.
- It is preferred majorly for local purposes.
- Unlike the Type 1, it’s hassle-free and easy to install.
- Since we are building in onto an existing OS, we do not need a Management S/W for this type.
- Examples of this type of hypervisor include VMware Fusion, Oracle Virtual Box, Oracle VM for x86, Solaris Zones, Parallels and VMware Workstation.
PS: Before installation of any kind of Hypervisor or Management S/W, it is advisable to first read the Service Level Agreement.
Thank you for the read, Keep reading the space for more interesting Content 🙂