Okay, so we know that computers comprise of hardware (motherboard, processors, system fan, keyboard, etc) and software. Software is what makes the hardware easy to use. In this context, we’re talking of software like Windows, Mac OS X, Linux, etc which are used to control hardware. These software are known as Operating Systems.
So now we know that Operating Systems are used to control hardware.
Back in the days, when you installed an operating system on the hardware, it became linked to that hardware. Now transferring the operating system to another machine was a god awful process.
Why would anyone need to transfer their OS?
Let’s some key component of your hardware decided to give up on you (like the power supply or RAM), then the OS and all the applications running on the OS would also stop functioning. Other reasons include, data center moves and consolidation, upgrading servers to a secure and supported operating system, and scaling servers to deal with growth or seasonal demand.
Now in virtualization, there is a software layer known as a “Hypervisor” or “Virtualization Layer” that is installed onto the hardware and instances of operating systems running on the hypervisor. So your operating system is not directly installed on the hardware.
The hypervisor ensures that the various resources of the hardware (processors, storage, etc) are efficiently allocated to the different instances of operating systems running on top of the hypervisor. These different instances are known as virtual machines (VM).
Each VM runs its own operating system (OS) and behaves like an independent computer, even though it is running on just a portion of the actual underlying computer hardware.– IBM Learning Cloud
Advantages of virtualization:
- Moving an instance of an operating system running on a hypervisor on one server to another similar hypervisor on another server becomes very easy (almost as easy as transferring a file from one system to another). So if your host computer fails, you can easily shift your VMs onto another system. Therefore, lesser downtime.
- You can run different operating systems on a single machine. For example, one instance (or VM) could be a windows OS and another instance could have Mac OS running (or even a different version of windows)
- Cost efficient. Running multiple virtual environments on a single server drastically reduces cost of multiple servers for different environments and therefore less consumption of electricity, lesser maintenance charges, etc
- It’s easier to set up a virtual environment as compared to the traditional installation of an OS on hardware. If you need to test your application on another OS using VMs is much more convenient than setting up another server.
Resources that I used:
Want to join on my learning journey? Feel free to subscribe!