What is a Virtual Machine (VM)?

For simplicity, think of a virtual machine, VM, as a "computer made of software" that you can use to run any software you'd run on a physical computer. Like a physical machine, a virtual machine has its own operating system (Windows, Linux, etc.), storage, networking, configuration settings, and software, and it is fully isolated from other VMs running on that host.

Why use a virtual machine?

Virtualization consolidates many small workloads onto a single physical computer, which ensures greater efficiency and lowers IT expenses. Deploying a new virtual machine with an operating system and application(s) provides an easy way for IT administrators to deploy proofs-of-concept and DevTest environments before changing production environments.

Virtual machines may also provide simpler asset management by consolidating VMs onto fewer physical servers. Managing virtual machines may also save your company time by maintaining less hardware, provisioning resources faster, and reducing downtime. And they can also reduce the space needed to deploy servers—as a result, they also end up reducing energy consumption, which makes them a more eco-friendly solution as well.

Virtual machines can also be a cost-effective way to run legacy applications without having to migrate to a completely new operating system. As hardware ages or becomes obsolete, virtualization allows a user to have the best of both worlds: they can upgrade hardware but still retain access to older operating systems.

The best virtual machine is highly portable, meaning it can be moved between physical computers in a network, and even between on-premises and cloud environments. Running multiple virtual machines on the same host can optimize the use of system resources.

Our cloud platform is one that comes packed with the latest benefits of virtualization technology. Oracle Cloud Infrastructure (OCI)-based virtual machines provide secure, elastic compute capacity in the cloud for a variety of workloads—ranging from small development projects to large-scale applications. We allow VMs to be deployed, managed, and decommissioned easily. In addition, we support an extensive list of Microsoft Windows Server and Linux operating systems, with standardized images and secure configurations that can reduce human error, while lowering costs and improving security.

Virtualization and hypervisors: What makes virtual machines work?

With virtualization, a single computer (host) can run multiple virtual computers (VMs) each with their own operating systems, processor cores, memory, storage, and networking. Because virtualization enables you to consolidate many small workloads onto a single physical computer, it ensures high resource utilization, which reduces IT expenses.

If virtualization is defined as enabling multiple operating systems to run on a single host computer, then the essential component in the virtualization stack is the hypervisor, which holds the VM and host computer together. A hypervisor is a software layer that enables virtual machines to run on the host computer and distribute processors, memory, and storage across all VMs.

This hypervisor, can also be referred to as the virtual machine monitor (VMM), creates a virtual platform by which multiple VMs are executed and monitored. This allows multiple operating systems, of the same or different operating system, to share the hardware resources.

As an example, VirtualBox is a popular virtualization product to build this virtual environment. It is a free, open source software that enables developers and IT administrators to quickly deploy operating systems. VirtualBox can be installed on macOS, Linux, and Windows. Other hypervisors include VMware vSphere and Microsoft Hyper-V.

Types of virtualization

Organizations today are faced with addressing increased complexity and provisioning in data centers to ensure growth and expansion. These constraints include increased power needs, data center costs, physical space constraints, and interconnection complexity.

Therefore, software and hardware manufacturers have begun to address some of these concerns by shifting how traditional data centers are architected via virtualization. There are the various types of virtualization:

Hardware virtualization:

Virtualizing hardware, including versions of computers and operating systems (VMs), creates a single, virtual, consolidated, primary server.

Software virtualization:

Creates a computer system, including hardware, that allows one or more guest OS to run on a physical host machine.

Storage virtualization:

Virtualizes storage by consolidating multiple physical storage devices, which appear as a single storage unit for improved performance and increased speed.

Network virtualization:

Enables application-driven cloud virtual networking across an entirely distributed set of systems, decoupling from physical network infrastructure. Network virtualization allocates bandwidth across channels, providing resources to servers and devices in real-time.

Desktop virtualization:

Separates your desktop environment from the physical device and stores a desktop on a remote server, allowing access from anywhere on any device.

Cloud computing and virtual machines

It’s easy to confuse virtualization with the cloud, mainly because both revolve around creating functional environments from resources across a network. However, virtualization is a technology to run multiple virtual machines on a single piece of hardware. The hardware runs your software, enabling you to install multiple operating systems that can run simultaneously and independently, in a secure environment, with minimal reduction in performance.

On the other hand, Clouds are IT environments that abstract, pool, and share scalable resources across a network.

Virtualization is a technology where cloud computing is an environment. Virtualization is the core software that enables cloud computing, which has become such an essential tool that businesses that don’t use it are at a competitive disadvantage.

Containers vs. virtual machines

Containers and virtual machines are both used by developers and IT professionals to create isolated virtual environments for testing and developing software. Whereas a virtual machine depends on a host to run a complete operating system, a container is an isolated silo that runs an application on the host. Containers run applications that are not dependent on an operating system—rather, they isolate an application by virtualizing it.

Since containers don’t contain operating systems, containers are lightweight and more portable than virtual machines. And even though containers are portable, they’re still constrained by their operating system; so that a container for Windows is unable to run on Linux. In the end, deciding between a container or a virtual machine depends on how a virtual environment will be used..

VirtualBox for Mac OSX running a Linux virtual machine

Kubernetes is an open source system for managing applications in a container environment. Kubernetes automates the processes to deploy and scale container applications. Using multiple containers for an app has become a common practice, with the containers spread across several servers. Our Container Engine for Kubernetes is a managed service that enables the deployment of the containers, so they can scale to match the workload.

Learn more about the differences between building and deploying your applications on virtual machines versus Kubernetes.

Virtualization and Oracle

We offer integrated virtualization products, from desktop to data center and public cloud. Going far beyond simple consolidation, we enable users to virtualize and manage a full hardware and software stack.

Learn more about how to manage your Oracle Linux KVM:

Oracle VM gives users the power to deploy operating systems and application software within a supported virtualization environment. Oracle’s offerings include: