Virtualization technologies have changed the way we use different operating systems on our desktops and our data centers. In this video, you’ll learn about desktop virtualization and some of the hardware requirements and networking options when running client-side virtualization software on your computer.
<< Previous: Basic Linux CommandsNext: Basic Cloud Concepts >>
Desktop virtualization is a very common way to run multiple operating systems on a single desktop. For example, you’d be running Mac OS X, Windows 7, Linux, and other operating systems all simultaneously on the same screen. Each of these virtual machines are self-contained. From the perspective of the virtual machine, they’re the only machine that’s running. In reality, of course, all of these virtual machines are running on one single piece of hardware.
If you’re using virtualization on your desktop, this is host-based virtualization where you have an underlying operating system that runs all of the OS, and then you’re running other operating systems on top of that. But in the Enterprise you don’t have this underlying operating system. Instead you have one piece of hardware and then separate virtual machines that sit on top of that.
The idea of virtualization is not something new. It’s been something we’ve been doing since 1967 on IBM mainframes. Instead we’ve taken the idea of virtualization and simply applied it to our latest operating systems.
This is an example of that host-based virtualization. You can see that this is a Mac OS X desktop. There is a version of a browser running in Mac OS X.
This is a Windows virtual machine running a Windows browser and Windows Paint. You can see that a Linux distribution is running here in a separate window as well. So we’ve got three virtual machines all running at the same time. It’s as if we had three separate physical computers sitting next to each other, but instead they’re all running on the same desktop.
The software that’s able to bridge this gap between the physical world and the virtual machine world is the hypervisor. You may see this also referred to as the Virtual Machine Manager. This is the software that’s able to create all of these virtual machines and have them all appear as if they have their own CPU, their own disk, and their own hardware resources.
To use this hypervisor software, you maybe need a CPU in your physical computer that is able to support some of these virtualization capabilities. We’ll talk about some of those in a moment. This hypervisor is in charge of managing the physical hardware and applying it into these virtual worlds. So everything relating to CPU, networking, security, and everything else about these virtual machines will all go through the hypervisor.
It makes sense that virtualization has become so popular. We’re able to take applications that were written in a particular OS and run them in that OS natively. We don’t have to do anything special to run a Windows application of Windows and virtualization allows us to do that.
An emulator works very differently. With emulation we’re running one type of application on a platform that is completely different. For example, on Linux we’re running a Windows application. In that particular case, the Linux machine is pretending to be Windows and is trying to run that application as if it really is Windows.
As you might expect, a Windows application that’s not actually running in Windows is probably going to run a bit slower because of all the emulation that has to take place. And it’s also very difficult thing to do as well. It’s not very easy to get a Windows application to run inside of Linux. So you can see now why virtualization may be the better alternative.
To be able to have one desktop and have virtual machines running on that desktop, you’re probably going to need a CPU that is specifically designed for virtualization. From an Intel perspective, the CPUs have VT, or Virtualization Technology, support. If you’re using an AMD processor, it should have AMD-V, which is their virtualization technology.
As you’re probably aware, you need a certain amount of memory in your computer to run your operating system. Now imagine if you’re going to run 1, 2, 3, or more additional operating systems on top of that. In those cases, it makes sense that you would need additional memory to be able to support these additional operating systems.
Each of these virtual machines have their own file systems. So you need to make sure you have enough storage space to store the operating systems, all the applications, and all of your data files in that virtual machine. Just as we have virtual operating systems that we could run in the software, we can also run virtual networks. And we can build up our own networks to connect these different systems however we’d like.
Most of our virtual machines that we’re running on our desktops have their own virtual internal network, so they can communicate within each other without communicating to the outside world. You could also configure a shared network address, so that the virtual machine would have exactly the same IP address as the physical host that it’s running on. It usually does a network address translation so that it’s able to communicate from inside the virtual world out to the physical world.
And of course, you could give the virtual machines their own IP address on your local network, just like any other device would have, so that it can communicate natively out to everything else on the network. And if you really wanted to limit how much communication would happen outside the virtual world, you could configure a private address that is only going to be able to communicate between other VMs and not out to the physical world.