What is a virtual machine (VM)?
A virtual machine, or VM, is a fully functional software simulation of a computer inside a physical computer. Virtual machines are essentially programs running on the host computer, so you can access multiple entirely separate digital computers while using one piece of hardware. This is a central part of how VDI , or virtual desktop infrastructure, works.
While using a virtual machine, you will have access to all the features and systems you might expect from a computer. They have an operating system, can run programs and applications, and connect to the internet. Data within a virtual machine can be stored entirely on the hard drives of the host computer or partially in the cloud.
Even though the virtual machine uses storage space on the physical machine, its storage space is completely walled off from the rest of the host computer’s data. This means that, for example, a virus on one virtual machine is isolated from other virtual machines on the same physical computer.
What are virtual machines used for?
Virtual machines have many uses, from running software to handling cybersecurity threats. The most common use for a virtual machine is to allow several guest operating systems to run within a single device.
With virtual machines, you could access both macOS and Windows through the same computer, depending on which simulated machine you chose to run. The use cases for this partitioning process are obvious. If you normally use Windows, for example, but wish to run a piece of software that is only available on macOS or Linux, you can set up a virtual machine to run a guest operating system.
Virtual machines are also used to deal with cybersecurity threats. If a security expert wants to examine a file that might be infected with malware, they can open the file within a virtual machine. The machine might become infected, but the malware won’t be able to spread to other virtual machines on the same physical machine. Virtual machines can also be used to create honeypots, virtual spaces that exist to lure hackers into a trap.
How do virtual machines work?
Virtual machines work in much the same way as any program you run on your computer. You launch your device and open whatever virtual machine program you wish to use. The simulated computer will be completely accessible through a normal application window, just like an internet browser or media player.
Instead of interacting directly with the physical machine, the virtual machine works with a piece of software called a hypervisor. The hypervisor is the middleman between the virtual machine and the host device, coordinating the use of storage space and processing power.
The fact that the virtual machine doesn’t directly communicate with the physical machine is very important because it adds additional security and ensures that risk factors on one simulation cannot spill over to others.
Advantages of virtual machines
Virtual machines offer several advantages for organizations and businesses of all sizes.
- Virtual machines allow you to access multiple unique computers from a single device, conserving both physical space and money. This can be particularly useful for smaller businesses, for which the maintenance costs of multiple computers could otherwise limit growth.
- The segregation of systems within one device allows for greater levels of security. Even if one virtual machine is hacked or infected with malware, the other computers being run on the hardware can still operate relatively safely.
- You can use any software you wish to, even if the host computer isn’t running the necessary operating system. Want to try out some Windows-native software on your Apple computer? Just install it on a virtual system that runs Windows and access it through your normal device.
- Troubleshooting and security simulations can be performed in virtual machines. If you want to test a new piece of antivirus software, you can install it on a virtual machine and then infect that machine with malware. Even if the antivirus fails, the only system that will be affected is the virtual machine. Being able to take risks in a controlled, virtual environment is extremely useful for cybersecurity research.
Disadvantages of virtual machines
Virtual machines do come with some negatives, of course. Here are some of the disadvantages associated with this technology.
- Virtual machines have limited processing power. Because they rely on the underlying hardware of the host computer, they can never compete with a normal computer for speed and efficiency.
- Stability issues can arise if you run multiple virtual machines on the same device. Remember, virtual machines have no memory, storage, or processing power of their own, so the more machines you install on one computer, the more that computer’s resources are divided.
- Limited speed is often an issue with virtual machines. Almost any process carried out on these simulated machines will be slower than an equivalent process on a physical computer.
- Multiple virtual machines could be compromised or lost if the host hardware encounters problems. Remember, all of the virtual machines on a device rely on the same physical hardware, so if the host machine is hacked or damaged, all the virtual machines it supports could be at risk.
Types of virtual machines
Virtual machines fall into two categories: system machines and process machines.
- A system machine replicates an entire physical computer and is the kind of virtual machine we’ve been focusing on throughout this article.
- A process machine is a virtual platform that is designed to run a single process. Rather than simulating an entire computer, process machines emulate just one environment within the host computer and facilitate a specific program or platform. These tools are sometimes called containers or micro virtual machines.
Types of virtualization
Virtualization is a wide-ranging term for partitioning or combining physical computing resources to create an artificial digital experience for the user. While dividing the resources of a computer to create multiple virtual machines is one form of virtualization, so is combining multiple physical devices to create a single virtual environment. Here are five kinds of virtualization commonly used today.
- Hardware virtualization. Hardware virtualization is the process we’ve focused on in this article: the simulation of a computer within a program, run on a host computer. The hardware in question doesn’t always need to be a computer, of course. For example, hardware virtualization could be used to simulate a gaming device – this is the concept behind console emulators.
- Application or software virtualization. Normally, when you want to run an application, it must be installed on your device, but that’s not the case if the application has been virtualized. In this system, the application is stored on a physical server elsewhere on the user’s network. When they want to “open” the application, the server sends them a virtualization of the program that can be accessed through the user’s device.
- Storage virtualization. This kind of virtualization focuses on combining multiple physical storage machines into one digital space. For example, a company might combine databases stored across several servers to create a single virtual storage pool. Users would feel as though they were accessing a single storage space, even though the data contained therein is sourced from numerous physical machines.
- Network virtualization. Network virtualization is used in two ways. It can allow the physical infrastructure underpinning a single network to support multiple virtual networks, essentially creating networks within a network. Alternatively, it can combine separate networks into one large virtual network.
- Server virtualization. This process involves dividing a single physical server up into multiple digital servers. The resources of a single physical machine are still being used, but those resources appear to users like multiple servers in cyberspace.
Multi-tenant vs. single-tenant
Virtual machines that simulate entire computers usually come in two forms: multi-tenant and single-tenant.
The term multi-tenant refers to situations in which multiple users are active on the same physical machine. For example, imagine three employees within a company all using different virtual machines, which each run off the hardware of a single computer. This is a multi-tenant approach.
On the other hand, we have a single-tenant setup, in which a single person has access to the physical computer’s resources. They might still operate multiple virtual machines on that computer, but there is just one user. This allows for a greater level of security than multi-tenant solutions, but is less resource-efficient.
Virtual machines vs. containers
When discussing virtual machines, a term that often comes up is containers. Containers are essentially virtual process machines, which we discussed previously. These are lightweight programs that are designed to run a single process or application, instead of simulating an entire machine with its own operating system.
Containers hold just enough code to facilitate a specific functionality. For example, if you wish to run a program that is native to a specific Linux distribution but you only have a Windows system, you could deploy a container within which that specific program can be used.
Choosing a virtual machine provider
If you’re going to choose a virtual machine provider, it’s important to know what features you’re looking out for.
- Software integration. When you’re deploying one or more virtual machines, it’s important to make sure these new systems integrate smoothly with your current software infrastructure. Look out for providers that maintain close partnerships with major software vendors, especially if you already rely on the products and tools those vendors sell.
- Technical support. Being able to contact your virtual system provider for technical support is extremely valuable, both for initial setup and long-term maintenance. No matter how good the virtual machine software is, there will probably be bugs and other issues sooner or later. Providers that offer ongoing customer support should always be your first choice.
- Security. One of the most important areas to focus on when selecting a virtual machine provider is security. Does the virtual machine software come with built-in security measures? Is virtualized data encrypted? However much security your provider offers, you should also consider using a VPN to encrypt traffic between devices and protect your networks. Services like NordVPN protect internet traffic in transit and provide additional privacy features.
- Robust, up-to-date infrastructure. Virtualization is only as effective as the hardware that facilitates it. If your virtual machine provider is also responsible for the physical machine hosting it, you should ensure that the hardware is adequate for your needs. Are the computers, servers, and other physical infrastructure involved up to date and powerful enough to meet user requirements? Will they scale smoothly over time?
- Long-term scalability. Even if the initial deployment is limited, you should always look ahead and consider potential scaling issues. If a provider is unable to guarantee reliable performance, integration, and customer support for large-scale deployments, they might not be your best option – futureproofing is important, after all.
Want to read more like this?
Get the latest news and tips from NordVPN.
We won’t spam and you will always be able to unsubscribe.