What is a Virtual Machine?
In this section, we will discuss what a virtual copy of a computer, which is called a virtual machine, is and how the virtualization layer between the hardware and system software creates a virtual machine.
A virtual machine is a software computer that, like a physical computer, runs an operating system and applications. It can run the same programs and behave exactly like the original machine that you can touch with your fingertips except that you can't actually touch the new machine because it only exists in the program.
An operating system is software that controls the computer and allows it to operate and also to run other programs such as application software.
The key to understanding how virtualization is able to create a virtual machine (usually referred to as a VM), is to visualize virtualization as a layer of programming that is installed onto the hardware. Because the virtualization layer interacts directly with the hardware, the virtualization programming will know that some hardware components are not processing information, solving logical problems, or storing bytes of information at full capacity. This is an issue because it causes inefficiency.
Virtualization programming solves this inefficiency by gathering the resources of the physical components using code and cloning them in the virtualization layer, creating virtual hardware. Even though it is now an instance in the virtual layer, virtual hardware functions the same and produces the same results. Once virtual hardware is created, it can be used to build a virtual machine.
A VM requires the same components a physical computer needs such as a keyboard, a mouse, a CPU, RAM, and more to be fully functional. The image below displays some of the components that a VM needs:
Once the hardware components are virtualized, a virtual machine can be built from them to run a web browser, email, games, music player, and many other applications just like the original hardware machine. The objective of virtualization is to have an instance (a copy) of something in a reality (virtual) on top of our reality (hardware).
Once the virtualization layer virtualizes these components, the VM is ready to be built. If you recall from the previous section, a physical computer is made up of hardware as well as software. So, like a physical computer, the virtual machine requires an operating system in order for the virtual hardware to actually work. The virtualization layer allows you to install an operating system of your choice for the virtual machine. This is called the guest operating system. As a user, you realize that this is not a physical machine but the guest OS believes it is using real computer hardware, and therefore will execute commands just like a real computer.
Now that the VM has hardware and an OS, the virtualization program packages all of the virtual components of a VM together as a set of files. That set of files is the VM. The files are executed in the virtual layer, creating the virtual machine. It can now have applications installed onto it which will run just like they do on a physical machine.
In order to clarify how a set of files can become a virtual machine that runs in the virtualization layer, we have to elaborate on the makeup of the virtual layer. The virtualization layer includes a piece of technology called the hypervisor. We will explain what a hypervisor is in detail in the next chapter, but it is important to become acquainted with the term. For now, we will refer to the hypervisor as the "host".
The host is the foundation of the virtualization layer, and everything virtualized exists in this layer. Think of the host as a tall office building with multiple office spaces and the virtual machines as the employees or office workers inside. The virtual machine is created and only exists inside of the host (office building). The virtual machine (office worker) can communicate to others outside of the host using, for example, the internet and messaging, but it cannot exist outside of a host.
Many virtual machines can be created on a host. A new VM can be hosted as long as the physical machine can support the VM's hardware needs.
Can you guess what VMware stands for, now that you know what a virtual machine is?
"VM" stands for Virtual Machine and "ware" stands for software. VMware is a virtualization company that delivers virtual machine software to individuals and businesses.
Aside from being a solution for hardware inefficiency, what are the most obvious benefits of a virtual machine to a user? The following highlights the benefits of a virtual machine compared to a traditional hardware computer.
- Difficult to move or copy
- Bound to a specific set of hardware components
- Often have a short life cycle
- Require personal contact to upgrade hardware
- Easy to move and copy because they are encapsulated into files and independent of physical hardware
- Easy to manage because they are isolated from other virtual machines running on the same physical hardware
- Insulated from physical hardware changes