What is a virtual machine (VM), hypervisor, and virtualization?

Learn the basics of virtualization, including what a virtual machine (VM) is and how hypervisors work.

What is Edge Computing?

What is virtualization and what are VMs?

For developers, information technology professionals, and Linux enthusiasts, virtualization is a vital process that allows one physical machine to run multiple virtual servers, networks, storage devices, operating systems, or applications. For instance, a virtual local area network (VLAN) uses virtualization to separate parts of a network, potentially increasing security and performance by isolating network traffic along logical lines.

More generally, virtualization is a term used to describe when a software process divides hardware resources. One example of this process is a virtual machine (VM), which might be used to administer multiple server processes on a single machine. A VM is a software-based computer that acts like a physical computer but uses virtual, rather than physical, resources.

A typical office server might use multiple virtual machines on one physical server that has many resources to run a Dynamic Host Configuration Protocol (DHCP) server, a local Domain Name System (DNS) server, and a network-attached storage (NAS).

Currently, containers are a common alternative to virtual machines since they have lower overhead. Containers package an application with its dependencies in isolation from the operating system. This allows containers to use fewer hardware resources than a traditional virtual machine. However, VMs can run a specialized operating system so they are still useful for cybersecurity reasons.

Why do we use virtualization?

Virtualization gives us more flexibility on a single piece of hardware. We can use virtualization to run multiple applications on a single machine and reduce costs, power usage, maintenance, and the number of potential hardware failures. Also, it's faster to make a new virtual machine or use a container than it is to configure a new system from scratch.

Lastly, using virtualization to limit the computing power a single application can access prevents the program from consuming more resources than it needs and potentially causes a full system crash. Dividing resources through virtualization improves the efficiency of resource allocation and isolates failed processes so they don't eat up all of our hardware resources.

It's possible to divide up RAM or CPU usage so that certain processes can’t access more resources than they need. For example, some applications might set RAM limits to prevent instability in the operating system. You can also create virtual partitions in storage drives that are treated as multiple devices.

While crashes are merely annoying for consumer devices, they can be devastatingly expensive for businesses. Such infrastructure must be engineered for maximum availability, as single points of failure can occur when one physical server takes down many virtual machines..

The kernel and the hypervisor

You can think of computers as operating over several logical layers, much in the way network processes are considered to operate over distinct layers. At the lowest level, we have the physical equipment or hardware.

Before considering the programs to run on this computer, we need some kind of process to control the hardware parts. The operating system's kernel is a low-level process that directly communicates with system hardware. Some virtualization technologies rely directly on the system kernel..

Virtualization is performed by a hypervisor. There are two main types of hypervisors. There can be some overlap between these two types:

Type 1 - Bare metal: Typically used for enterprise equipment. It is hosted directly on top of the hardware via the OS kernel.

Type 2 - Hosted: Emulated on top of the host operating system. This is significantly less expensive because they do not require dedicated hardware.

Conclusion

Virtualization is a process that makes it possible to divide physical resources within a software environment. It can be used on a local computer to divide hardware resources. At a larger scale, virtualization makes it possible to share powerful hardware with numerous users, which enables edge computing, which brings computing resources closer to users.

Did you find this article helpful?

0 out of 0 Bunnies found this article helpful

Prove your Knowledge.
Earn a bunny diploma.

Test your knowledge in our Junior and Master Quizes to see where you stand. Prove your mastery by getting A+ and recieving a diploma.

Start the QuizBunny with a diploma.