My IBM Log in Subscribe

What is a virtual machine (VM)?

26 February 2025

8 minutes

Authors

Stephanie Susnjara

IBM Think Content Contributor , Gather

Ian Smalley

Senior Editorial Strategist

What is a virtual machine?

A virtual machine (VM) is a virtual representation or emulation of a physical computer that uses software instead of hardware to run programs and deploy applications.

By using the resources of a single physical machine—memory, CPU, network interface and storage—VMs enable businesses to run multiple machines virtually (with different operating systems) on a single device.

VMs are typically referred to as guests, with one or more “guest” machines running on a physical machine called the “host” machine. VM technology includes virtual servers, virtual server instances (VSIs) and virtual private servers (VPSs).

A Precedence Research report reveals the global virtual machine market size accounted for USD 11.11 billion in 2024 and is predicted to increase from USD 12.73 billion in 2025 to approximately USD 43.81 billion by 2034, expanding at a CAGR of 14.71% from 2025 to 2034.1

As businesses move to the cloud for its scalability, flexibility and cost efficiency, cloud providers continue to use virtual machines and other critical technologies (e.g., containers) to provide consistent IT infrastructure.

The integration of artificial intelligence (AI) into VMs is also rapidly growing, with the global AI market projected to reach USD 826.70 billion by 2030, reflecting a compound annual growth rate (CAGR) of 27.67% from 2025 to 2030.2 This surge in overall AI adoption is driving the demand for AI-enabled virtual machine solutions, allowing businesses to enhance automation, optimize resource usage and improve system performance.

Aerial view of highways

Keep your head in the cloud 


Get the weekly Think Newsletter for expert guidance on optimizing multicloud settings in the AI era.

What is virtualization?

VMs use virtualization, the process of creating software-based or virtual versions of resources (e.g., compute, storage, networking, servers) or applications. Virtualization allows for more efficient use of physical computer hardware and is foundational to cloud computing.

Virtualization is made possible with a hypervisor, also called a virtual machine monitor (VMM). This lightweight software layer manages virtual machines as they run alongside each other.

Virtual machines often reside in environments where the network is abstracted or virtualized. Software-defined networking (SDN), for instance, enables the dynamic allocation of network resources to virtual machines, helping ensure that they get the bandwidth or routing they need without manual configuration.

The origins of virtualization and VMs

The birth of virtualization goes back to 1964, when IBM designed and introduced CP-40, an experimental time-sharing research project for the IBM System/360. The CP-40, which later evolved into the CP-67 and then Unix, provided computer hardware capable of supporting multiple simultaneous users and laid the groundwork for virtual machines.

On 2 August 1972, IBM rolled out what many regard as the first virtual machine, the VM/370, and the first System/370 mainframes that supported virtual memory.

In 1998, VMware developed the x86 operating system, which enabled a single machine to be segmented into several virtual machines, each with its own operating system. In 1999, the company launched VM Workstation 1.0, the first commercial product that allowed users to run multiple operating systems as virtual machines on a single PC.

Today, virtualization is a standard practice for enterprise-grade IT infrastructure and a driving force in cloud computing economics, enabling businesses to drive higher capacity usage and reduce costs. All IT infrastructure can be virtualized, including desktop environments, operating systems, GPUs, storage hardware, data centers and more.

AI Academy

Achieving AI-readiness with hybrid cloud

Led by top IBM thought leaders, the curriculum is designed to help business leaders gain the knowledge needed to prioritize the AI investments that can drive growth.

How do virtual machines work?

As previously explained, virtualization relies on hypervisor technology. This software layer placed on a physical computer or server (also known as a bare metal server) allows the physical computer to separate its operating system and applications from its hardware.

These virtual machines can run their operating systems and applications independently while still sharing the original resources (e.g., memory, RAM, storage) from the server, which the hypervisor manages. The hypervisor acts like a traffic cop, allocating resources to virtual machines and helping ensure that they don’t disrupt each other.

There are two primary types of hypervisors:

  • Type 1 hypervisors
  • Type 2 hypervisors

Type 1 hypervisors

Type 1 hypervisors run directly on the physical hardware (usually a server), replacing the operating system (OS). Typically, you use a separate software product to create and manipulate VMs on the hypervisor. Some management tools, such as VMware’s vSphere, let you select a guest operating system to install in the VM. You can use one VM as a template for others and duplicate it to create new ones. Depending on your needs, you might create multiple VM templates for different purposes, such as software testing, production databases or development environments. A kernel-based virtual machine (KVM) is an example of a type 1 hypervisor.

Type 2 hypervisors

Type 2 hypervisors run as applications within a host OS and usually target single-user desktop or notebook platforms. With a type 2 hypervisor, you manually create a VM and install a guest OS inside it. You can use the hypervisor to allocate physical resources to your VM, manually setting the number of processor cores and memory it can use. Depending on the hypervisor’s capabilities, you can set options such as 3D acceleration for graphics. Examples of type 2 hypervisors include VMware Workstation Pro and Oracle VirtualBox.

System virtual machines vs. process virtual machines

In addition to classification according to hypervisor management, virtual machines fall into two main categories: system virtual machines (also called full virtualization machines) and process virtual machines.

System VMs allow for the sharing of underlying physical machine resources between different virtual machines, each running its own operating system.

In contrast, process virtual machines (also called application virtual machines) run an application inside an OS and support a single process. Java™ virtual machines (JVMs), which run programs compiled in Java, are examples of process VMs.

Advantages of virtual machines

VMs offer numerous advantages over traditional physical hardware, including the following:

  • Resource usage and improved ROI
  • Agility and speed
  • Portability
  • Flexibility
  • Security
  • Sustainability
Resource usage and improved ROI

Because multiple VMs run on a single physical computer, customers don’t have to buy a new server whenever they want to run another OS. Therefore, they can get more return from each piece of hardware they already own, significantly reducing IT costs related to capital and operating expenses.

Agility and speed

Because VMs are software-based, it’s easy to spin up new ones. This feature makes it faster to scale up to meet new workload demands and reduce downtime compared to provisioning new hardware-based environments. Load balancing helps ensure that workloads are distributed evenly across VMs, optimizing performance and responsiveness during scaling without overloading any single VM.

Portability

Businesses can relocate VMs as needed among the physical computer systems in a network. This capability makes it possible to allocate workloads to servers with spare computing power. VMs can even move between on-premises and cloud environments, making them useful for hybrid cloud scenarios where you share computing resources between your data center and a cloud service provider.

Flexibility

Creating a VM is faster and easier than installing an OS on a physical server because you can clone a VM with the OS already installed. Developers and software testers can create new environments on demand to handle new tasks as they arise.

Security

VMs improve security in several ways compared to operating systems, which run directly on hardware. You can scan a VM file for malicious software by using an external program. You can create a snapshot of the VM at any point and restore it to that state if it becomes infected with malware, effectively taking the VM back in time. The fast, easy creation of VMs makes it possible to quickly delete and re-create a compromised VM, hastening recovery from malware infections.

Sustainability

With fewer physical servers to run workloads and applications, you can dramatically reduce energy consumption to improve your environmental impact.

Disadvantages of virtual machines

While VMs have many benefits, they do have a few disadvantages to consider:

  • Performance issues
  • Increased complexity
  • Single point of failure (SPOF)
Performance issues

VMs depend on the hardware resources made available to them on the physical host computer. Limited resources can lead to reduced performance and inefficiencies.

Increased complexity

Virtual machines can be complex to configure and manage, requiring teams with technical knowledge and expertise to set up and maintain them.

Single point of failure (SPOF)

VMs pose the risk of a single point of failure by relying on one physical computer.

Top virtual machine use cases

Virtual machines (VMs) serve a wide range of purposes for both enterprise IT administrators and other users, including the following:

  • Enable cloud-based computing: VMs are the fundamental unit of cloud computing in hyperscale environments run by cloud service providers (e.g., Amazon Web Services (AWS), IBM Cloud®, Microsoft Azure, Google Cloud), enabling dozens of applications and workloads to run and scale successfully.
  • Speed workload migration: Because of their portability, VMs help speed the migration of workloads from on-premises to cloud-based settings.
  • Accelerate hybrid cloud journeys: VMs provide the infrastructure for creating hybrid cloud environments that blend on-premises, private cloud and public cloud environments into a single, flexible IT infrastructure.
  • Support DevOps: VMs are a great way to support DevOps teams and other enterprise developers, allowing them to configure VM templates with the settings for their software development and testing processes. They can create VMs for tasks such as static software tests, including these steps in an automated development workflow. These functions help streamline the DevOps toolchain.
  • Test a new operating system: A VM lets you test-drive a new system on your desktop without affecting your primary OS.
  • Investigate malware: VMs are helpful for malware researchers who frequently need fresh machines to test malicious programs.
  • Run incompatible software: Some users need to use one OS while still needing a program only available in another.
  • Browse securely: Using a virtual machine for browsing enables you to visit sites without worrying about infection. You can take a snapshot of your machine and then roll back to it after each browsing session. Users can set up this browsing scenario by using a type 2 desktop hypervisor. Alternatively, an admin can provide a temporary virtual desktop on the server.
  • Support disaster recovery (DR): With a virtualized environment, it’s easy to provision and deploy resources, allowing you to replicate or clone the virtual machine when needed. This process happens in minutes, unlike the many hours it takes to provision and set up a new physical server. This capability is crucial for disaster recovery (DR), which helps ensure business continuity and reduces downtime.
  • Build and use cyber ranges: Cyber ranges are simulated environments for training, testing and evaluating cybersecurity skills and tactics. VMs are crucial in these environments, offering the flexibility, scalability and isolation needed.
  • Enhancing artificial intelligence (AI): Virtual machines support AI workloads by offering scalable, isolated environments that adjust resources dynamically for efficient model training and deployment.

Common types of virtual machines

The VM open source and proprietary marketplace offers a wide range of virtual machines and solutions, catering to various operating systems and development environments for seamless integration and performance.

  • VMware virtual machines
  • Windows virtual machines
  • Android virtual machines
  • Mac virtual machines
  • ioS virtual machines
  • Java virtual machines
  • Python virtual machines
  • Linux virtual machines
  • Ubuntu virtual machines

VMware virtual machines

The first company to successfully commercialize the virtualization of the x86 microprocessor architecture, VMware is a leader in the virtualization market.VMware provides type 1 and type 2 hypervisor and VM software to enterprise customers.

Windows virtual machines

Most hypervisors support VMs running the Windows operating system (OS) as a guest. Microsoft’s Hyper-V hypervisor comes as part of the Windows OS. When installed, it creates a parent partition that contains itself and the primary Windows OS, each getting privileged access to the virtualized hardware. Other operating systems, including Windows guests, run in child partitions and communicate with the hardware through the parent partition.

Android virtual machines

Google’s open source Android OS is standard on mobile and connected home devices.

The Android OS is designed to run only on the ARM processor architecture, which is typical for these devices. However, enthusiasts, Android gamers or software developers might want to run it on PCs. This can be problematic because PCs typically use the x86 processor architecture, and a hardware virtualization hypervisor only passes instructions between the VM and the CPU—it doesn’t translate them for processors with different instruction sets.

Various projects such as Shashlik and Genymotion address this incompatibility by using an emulator that re-creates the ARM architecture in software. An alternative, the Android-x86 project, ports Android to the x86 architecture. To run it, you must install the Android-x86 program as a virtual machine using the VirtualBox type 2 hypervisor. Another alternative, Anbox, runs the Android OS on the kernel of a host Linux OS.

For Android development, these virtual machines and emulators offer developers a way to test and debug apps on different Android versions and devices without the actual hardware.

Mac virtual machines

Apple allows its macOS system to only run on Apple hardware. You can’t run it on non-Apple hardware as a VM or under its user license agreement. However, you can use type 2 hypervisors on Mac hardware to create VMs with a macOS guest.

iOS virtual machines

It is impossible to run iOS in a VM because Apple strictly controls its iOS operating system and only allows it to run on Apple hardware.

The closest alternative to an iOS VM is the iPhone simulator, which comes with the Xcode integrated development environment (IDE). The simulator mimics the iPhone system in software, allowing developers to test iOS applications.

Java virtual machines

A Java virtual machine (JVM) provides an execution environment for programs written in the Java programming language. Java's promise—“write once, run anywhere”—means that any Java program can run on any platform that supports Java, which is why the JVM is an essential part of the Java platform.

Java programs are compiled into bytecode, a form of intermediate instruction designed for the JVM. The JVM then translates this bytecode into machine code, which is the low-level language that the host computer's processor understands. Each JVM creates machine code specific to the processor architecture that it is running on, helping ensure compatibility across different systems.

Unlike traditional virtual machines, the JVM doesn’t emulate an entire operating system or rely on a hypervisor. Instead, it translates application-level instructions to run directly on the hardware.

Python virtual machines

Like the JVM, the Python VM doesn’t run on a hypervisor or contain a guest OS. It is a tool that enables programs written in Python to run on various CPUs.

Like Java, Python translates its programs into an intermediate format called bytecode and stores them in a file ready for execution. When the program runs, the Python VM translates the bytecode into machine code for fast execution.

Linux virtual machines

Linux is commonly used as both a guest OS and a host operating system for virtual machines. As a host OS, it supports VMs and even has its own hypervisor, the kernel-based virtual machine (KVM). While KVM is an open source project, it is primarily maintained by Red Hat.

Ubuntu virtual machines

Ubuntu is a Linux distribution produced by Canonical. It is available in both desktop and server versions, which can be installed as virtual machines. Users can deploy Ubuntu as a guest OS on Microsoft Hyper-V. An optimized version of Ubuntu Desktop works well in Hyper-V’s Enhanced Session Mode, providing tight integration between the Windows host and the Ubuntu VM. This version includes support for clipboard integration, dynamic desktop resizing, shared folders and seamless mouse movement between the host and guest desktops.

Multitenant vs. single-tenant

In cloud computing environments, virtual machines (VMs) come in both single-tenant and multitenant variations.

Multitenant VMs

Public or multitenant virtual machines are virtual machines with multiple users sharing a common physical infrastructure. This model is the most cost-effective and scalable approach to provisioning virtual machines. However, multitenant environments lack some isolation characteristics that organizations with strict security or compliance mandates might prefer.

Single-tenant VMs

The two models for single-tenant virtual machines are:

  • Dedicated host: A dedicated host involves renting an entire physical machine and maintaining sustained access and control over that machine. This model provides maximum hardware flexibility and transparency. It also includes workload control and placement and offers some advantages for specific bring-your-own license software.
  • Dedicated instance: A dedicated instance offers the same single-tenant isolation and the same control over workload placement, but it is not coupled with a specific physical machine. So, for example, if a dedicated instance is re-booted, it might wind up on a new physical machine—a machine dedicated to the individual account, but a new machine, potentially in a different physical location.

Pricing models for VMs

The most common pricing models for virtual machines in the cloud are:

  • Pay-as-you-go (by the hour or second)
  • Transient/spot instances
  • Reserved instances
  • Dedicated host
Pay-as-you-go

A pay-as-you-go model has no upfront costs for the virtual machine; users simply pay for what they use. Customers pay by the hour or second, depending on the provider and instance type.

Transient/spot instances

The lowest-cost model of VMs, transient or spot instances, takes advantage of a provider’s excess capacity, but the capacity can be reclaimed by the provider at any time. Transient/spot instances are useful for applications that don’t always need to be on or are prohibitively expensive in any other model.

Reserved instances

Unlike pay-as-you-go models, reserved cases come with an explicit term commitment, usually between one and three years, but are also coupled with steep discounts.

Dedicated hosts

A user typically pays the total cost of the physical server and is billed in whatever increments the provider offers dedicated servers, typically hourly or monthly.

Virtual machines vs. bare metal servers

Choosing a virtual machine over a bare-metal server isn't about one having superior capabilities over the other; it's more about understanding your specific needs and when each option is the best fit.

Bare metal servers are all about raw hardware, power and isolation. They’re single-tenant, physical servers completely void of hypervisor cycles (virtualization software) and entirely dedicated to a single customer—you.

Workloads prioritizing high performance and seclusion, such as data-intensive applications and regulatory compliance mandates, are typically best suited for bare metal servers, especially when deployed over sustained periods.

Enterprise resource programs (ERP), customer relationship management (CRM), supply chain management (SCM), ecommerce and financial services applications are just a few workloads ideal for bare metal servers.

In contrast, when your workloads demand maximum flexibility and scalability, you are better off placing a hypervisor on the bare metal hardware to make a virtual machine. Virtual machines increase server capacity and usage. They are ideal for moving data from one VM to another, resizing datasets and dividing dynamic workloads.

Virtual machines vs. containers

The easiest way to understand a container is to know how it differs from a traditional virtual machine. In traditional virtualization, whether on-premises or in the cloud, a hypervisor helps to virtualize physical hardware. Each VM contains a guest OS, a virtual copy of the hardware the OS requires to run and an application and its associated libraries and dependencies.

Instead of virtualizing the underlying hardware, containers virtualize the operating system (typically Linux). Containerization tools such as Docker help create and manage these containers, where each container contains only the application and its libraries and dependencies. The absence of the guest OS is why containers are so lightweight, fast and portable.

Containers and technologies such as Kubernetes (the open source container orchestration platform) have become the de facto units of modern cloud-native and microservices architectures. While containers are most often used for stateless services, organizations can also deploy them for stateful services.

Containers are standard in hybrid cloud scenarios because they can run consistently across public cloud, private cloud and traditional, on-premises settings. Today, an organization might run the application on its private cloud; but tomorrow, it might need to deploy it on a public cloud from a different provider. Containerizing applications provides teams the flexibility that they need to handle the many software environments of modern IT.

It’s important to note that businesses can coexist with containers and virtual machines. For instance, it is commonplace to run containers in VMs since many enterprises have VM-based infrastructure. A company can choose a container to run an application and have a virtual machine provide the underlying infrastructure. This method combines the portability and speed of containers with the security of virtual machines. In another scenario, a financial institution can use VMs for its database systems, helping ensure tighter security with resource isolation and containers for front-end applications such as customer-facing mobile apps.

The blog post “Containers versus VMs: What’s the difference?” explains more.

Check out this video that breaks down the basics of containerization and how it compares to using VMs.

10 things to consider when choosing a virtual machine provider

Selecting a virtual machine and cloud provider starts with reviewing your workload needs, budget requirements and other critical factors. Below are 10 things to consider when choosing a virtual machine service provider.

  1. Reliable support: Ensure 24 x 7 customer support by phone, email, chat and so on. You want a real person on the other end to help you through critical IT situations. It’s also important to note which cloud providers offer extra services for more hands-on backing.
  2. Managed options: Does the cloud provider offer both unmanaged and managed solutions? If you are unfamiliar with virtualization technology, consider a provider who is responsible for setup, maintenance and ongoing performance monitoring.
  3. Software integration: Will your virtual machine environment play well with others? Operating systems, third-party software, open-source technology and applications help you deliver more solutions across your business. You’ll want a virtual machine provider with support and strong partnerships with the industry’s most-used software suppliers.
  4. High-quality network and infrastructure: How up to date is the infrastructure your new virtual machine runs on? This infrastructure includes dependable bare metal servers, modern data centers and the network backbone. A cloud provider should be able to deliver its part of the deal with state-of-the-art hardware and high-speed networking technology.
  5. Location: The closer the data is to your users, the fewer hassles you’ll encounter with latency, security and real-time service delivery. An excellent global network of scattered data centers and POP locations is central to having data where and when you need it most.
  6. Backup and recovery: What plan does your cloud provider have for keeping your virtual machines up and running in the face of unexpected events? Do they also provide add-on backup and redundancy options for your virtualized environment? Continuous operation is critical for business as downtime can lead to lost revenue, decreased customer trust and disruption to key processes,
  7. Scalability and ease: How fast and easy will it be for you to spin up, spin down, reserve, pause and update your virtual machine? Ensure your provider offers “on-demand” virtual machine scalability.
  8. Varied CPU configurations: The more configurations, the more options you’ll have. Not every virtual machine configuration fits every workload during every season of usage. Be sure to look for a virtual machine provider that delivers varied configuration packages for single and multitenant requirements.
  9. Security layers: Your business data is currency in the highest form, especially when dealing with sensitive client information. Be sure to ask the provider about private network lines, federal data center options, built-in encryption features and meeting regulatory compliance standards, all essential to protecting your most valuable asset.
  10. Seamless migration support: As your IT priorities evolve, your virtual machine provider should be able to help you seamlessly transition between on-premises and off-premises. Look for complete data ingest, over-the-network and application-led migration options.
Related solutions

Related solutions

IBM Cloud Virtual Server for VPC

IBM Cloud Virtual Server for VPC is family of Intel x86, IBM Z, and IBM LinuxONE virtual servers built on IBM Cloud Virtual Private Cloud.

Explore cloud virtual server
Cloud Web Hosting 

IBM Cloud dedicated servers provide a scalable web hosting solution with unlimited no-cost backhaul traffic and extensive customization options.

Explore web hosting solutions
Cloud Consulting Services 

Unlock new capabilities and drive business agility with IBM’s cloud consulting services. Discover how to co-create solutions, accelerate digital transformation, and optimize performance through hybrid cloud strategies and expert partnerships.

Cloud services
Take the next step

Power your web presence with reliable and secure web hosting solutions from IBM Cloud. From high-traffic websites to enterprise applications, IBM Cloud Bare Metal Servers deliver flexibility, unlimited data transfer and global reach tailored to your hosting needs.

Explore IBM Cloud web hosting Create your free IBM Cloud account
Footnotes