Virtualization is the cornerstone of today’s cloud-based technologies. In this video, you’ll learn how virtualization can be used to optimize the use of your hardware.
<< Previous Video: Code Quality and Testing Next: Virtualization Security >>
Virtualization is a remarkable technology that allows you to run multiple individual operating systems, all on the same piece of metal. For example, this is the screenshot of my workstation, which is running Mac OS 10. I’m also running Windows 7 in it’s own window on my desktop. And I’m also running an instance of Linux Ubuntu on this desktop as well.
So I’ve got three very different operating systems all running simultaneously, as if it were three individual computers all put next to each other. With virtualization, we really have one physical computer, but we’ve got separate operating systems, independent CPUs occurring between all of these different operating systems. They all have their own allocated memory and their own network configurations.
This is what we call host-based virtualization, which has my normal Mac OS 10 desktop with other operating systems that I can start and stop right on the Mac desktop. At the enterprise level, you don’t even use a host-based operating system. The virtualization itself is the operating system. And all of the other operating systems will run on top of that.
This is a technology that’s been around for 50 years. It started in 1967 with IBM mainframes. And it’s a technology that, today, has become very standardized in the enterprise.
Here’s a better screenshot of my Mac desktop with Mac OS 10 running a browser here. We’ve got Ubuntu running with it’s own file system, it’s own memory, and then a completely separate Windows operating system running in it’s own window.
You’re able to use this single, physical machine, but somehow keep all of these virtual machines separated by using a hypervisor. You might also hear this referred to as a virtual machine manager. This software is responsible for keeping all of those virtual machines separated from everyone else, and also allocating the proper memory, CPU, and other resources that are required for that VM.
Depending on the operating system and the hypervisor that you use, you may need specialized hardware. For example, you may require a CPU that has these virtualization capabilities enabled in the hardware. And with this hypervisor running, we now have a piece of software that’s able to manage all of the CPU, the networking, the security, and all of the other resources needed for a virtual machine.
There are different kinds of hypervisors. The hypervisor that we’ve seen so far is a type 2 hypervisor. This is one that runs on top of an existing host operating system. So this is a hypervisor that would run in Windows, in Mac OS, or on the Linux desktop.
A type 1 hypervisor doesn’t need a host-based operating system. It effectively is its own operating system that you would load onto bare metal. This is also called an embedded or a native hypervisor as well. You don’t need any additional operating systems. You simply install the type 1 hypervisor and then load your virtual machines on top of that.
You might also run into a virtualization technique called application containerization. When you’re running these applications, they may not necessarily need all of the different resources and capabilities of an operating system. So you can build this application virtualization to launch, without using an entire virtual machine behind it. It uses just the right resources needed for that application. And everything that you need to run the app is contained within the cell, or container, of the app.