You’re reading this article on a computer. That’s a fact.
Whether it’s on a laptop, desktop, or mobile device, viewing this content requires you to use an operating system connected to an electronic device. It’s also possible that that operating system is being run within another operating system without you even knowing it.
This inception-style computer functionality is all possible thanks to capabilities of virtual machines.
A virtual machine (VM) is a computer file that functions as an actual computer. VMs can then run in instances, often called images, and give the user the same exact experience they would have if they were using their own physical personal computer.
VMs have all of the capabilities and features of a normal computer, like central processing units, network interfaces, memory, and applications. While VM images are reached on endpoint devices, once the user connects to it, the software, applications, and configurations of the VM don’t interfere with those of the device on which it is being accessed.
Essentially, when you install a virtual machine, you are creating a computer within a computer.
How does a virtual machine work?
Virtual machines are possible due to virtualization, which is the process of running a virtual instance of a desktop computer in a layer that has been separated from the hardware. In the case of VMs, the virtualization of that machine's resources is accomplished by a software called hypervisors, which create, host, and run VMs.
Thanks to virtualization, VMs create a virtual environment for its users. VMs then run as processes in a window on your computer’s operating system. Within those environments, users can run applications, store data, and conduct any action that anyone would do on an actual computer.
Basically what happens is the operating system of the VM is tricked into believing it’s being run on the computer’s native hardware instead of through software, giving users the exact same experience.
When discussing VMs, the operating system on your actual physical computer is called the host, and operating systems running within your virtual machine are called guests. Guest operating systems are stored on a virtual hard drive, which is a file stored on the hard drive of your device.
Wow. That’s pretty confusing. Let’s break it down with an example to make it a bit easier to understand.
Let’s say your business is equipped with MacBook Pros. Your MacBook Pros use the operating system Catalina (macOS Catalina). If you wanted to start using virtual machines on your business’ MacBook Pros, you would install a server hypervisor, also known as server virtualization software. With that in place, you can then run multiple virtual machines within that hypervisor. If you wanted to run a VM with Windows 10 on that MacBook Pro, you could do that.
Types of virtual machines
There are two different types of VMs: system virtual machines and process virtual machines. While they both act as emulations of a computer system, they serve different purposes.
System virtual machine
Also known as full virtualization VMs, system virtual machines are substitutes for real machines and provide all of the functionalities of an actual operating system. With a system VM, the hypervisor will access the underlying machine’s resources, giving the user the same capabilities that the host device offers.
Process virtual machine
A process virtual machine, also referred to as an application virtual machine, supports one single process at a time. The VM is created when that process begins and is destroyed when it ends.
The purpose of a process VM is to execute a computer program in a platform-independent environment, meaning it can run on a variety of hardware or software.
What is a virtual machine used for?
In the example above, we broke down the general steps of how a virtual machine works, with the ultimate purpose of running an operating system that was not initially intended for the device in use (using Windows 10 on a MacBook Pro). This might seem like an odd goal, but it’s actually one of the primary reasons why VMs are used.
Here’s some more information on that, along with some other reasons people decide to use virtual machines.
Trying out new operating systems
Changing up your operating system is a giant leap. If you’re used to a certain operating system and want to avoid a dual boot setup, VMs offer a great alternative for those looking to switch it up without much of a risk.
Within your current operating system, you can install a hypervisor that will host a VM, set up an operating system on that VM, and then run it like any other program. You can test it out and get a feel for it before deciding whether or not to adopt it completely.
Since the applications and configurations don’t interfere with those on the endpoint device, you can test the operating system without the fear of it affecting your computer. If something goes wrong on the operating system within your VM, it will have no effect on your device.
Running incompatible software
Some computers and operating systems are more compatible with certain software, and switching to another operating system might leave you thinking you can no longer use the programs you’re used to. Maybe you switched devices and find yourself missing a software specific to your old operating system, or you loved using an out of date program that doesn’t run well on your computer anymore. Well, you don’t have to say goodbye completely.
VMs offer a great avenue to run incompatible software on any of your endpoint devices. Because they have their own virtual hardware, you can install any operating system, and therefore, software that it’s compatible with it. No matter the operating system of your device, as long as you are using a VM, incompatible software will no longer be an issue.
One of the key benefits of VMs is their ability to run completely separate from the main system on which it’s being accessed. This means that if something goes awry on your VM, no damage is done to your device’s systems and functionality.
This benefit comes in handy when attempting to safely handle malware. Say you are looking to download a certain program, but you aren’t 100 percent sure if you can trust the site. Or maybe you are testing the software you implemented to protect your business from viruses. You can test the legitimacy of that website and the effectiveness of your antivirus software on a VM without the device being compromised.
Developing software for other platforms
Another reason people use VMs is to test applications, websites, and software across various platforms. When developing software for both desktop and mobile, you can use an emulator, which is a piece of either hardware or software that enables one computer system to act like another, to test both of the capabilities at once.
Using snapshots for restoration
As your organization grows and changes, so will your tech stack. Adding, removing, and testing any software or application can result in you losing track of all of your changes. You might even get to a point where you added or removed one too many features, and you wish you could just go back in time to your old setup.
With VMs, you can do just that.
VMs allow users to take a snapshot of your current configuration, should you wish to return to it later on. This way, if something goes wrong when making changes to your configuration, you can restore the snapshot and keep working as if nothing was ever changed in the first place.
Cloning a system to another machine
Because VM contents are stored virtually in a couple of files, they can easily be uploaded to another computer system, allowing it to be cloned. Essentially what happens here is the files are copied and then loaded on to another computer of your choosing. As long as you use the same hypervisor, you can load a VM and all of its contents to another computer without any problems.
Benefits of a virtual machine
If those use cases listed above don’t offer enough reason to start using a virtual machine in your organization, here are some additional benefits.
Resource utilization and server consolidation
The primary reason people use VMs is server consolidation, which is a method of efficiently using a computer server’s resources to reduce the total number of servers or server locations. A lot of operating systems out there only use a fraction of their available physical resources, but with virtualization, you can have many different virtual servers on each physical server.
Essentially, using VMs improves your hardware utilization, eliminating the need to purchase more hard drives, server racks, or other hardware.
VMs are equipped with disaster recovery options that some operating systems don’t have. Should there be a natural or human disaster, and an organization needs to regain access to its IT infrastructure, virtualization offers a method of recovery.
Because VMs are unaffected by disasters, organizations can use them to back up their data or clone their computing environment, allowing them to recover quickly.
Users are also attracted to the fact that VMs run completely separate from the machine on which they are being accessed. Because of their isolation from the rest of the system, whatever a VM is running won’t interfere with the host’s operating system.
Drawbacks of a virtual machine
While virtual machines offer plenty of user benefits, including testing abilities and disaster recovery, there are also a few drawbacks that new users need to consider before making the investment.
Overdoing it and expecting too much of your virtual machine can cause unstable performance, especially if you’re running more than one VM on the same physical computer.
Because virtual machines are essentially just virtual versions of computers, they also struggle with the same limitations. Things like bandwidth and network capabilities aren’t endless, and users will feel the struggle of reaching the maximum capacity that their VM can handle just like they would with a regular computer.
While virtual machines offer all of the capabilities of a normal computer, they are still just a function of that computer, and require a decent amount of power. Because the physical machine on which the VM is being run will need to support itself as well, VMs tend to run slower and less efficiently than normal computers.
Don’t miss out on the magic
While your computer’s operating system has plenty of software tools and applications to help you stay productive, there might still be a few capabilities that are out of reach. With a virtual machine, you can run the functionality of two computers at once. Talk about productivity!
Mary Clare Novak is a Content Marketing Specialist at G2 in Chicago, where she is currently exploring topics related to sales and customer relationship management. In her free time, you can find her doing a crossword puzzle, listening to cover bands, or eating fish tacos. (she/her/hers)