
A software-based emulation of a physical computer, a Virtual Machine (VM) allows multiple operating systems to run on a single physical host by virtualizing the hardware resources of that host. VMs are isolated from one another, meaning that the resources and state of one VM are separate and distinct from the resources and state of another VM on the same host.
Components of a Virtual Machine
A VM typically includes virtual versions of the following physical hardware components:
- Central Processing Unit (CPU): The virtual CPU allows the VM to execute instructions and perform computations.
- Memory (RAM): Virtual memory allocates RAM to the VM, enabling it to run applications and processes.
- Storage (hard drive or SSD): Virtual storage provides the VM with a place to store data and applications.
- Network Interface: This component allows the VM to communicate with other devices on a network.
- Graphics Processing Unit (GPU): Depending on the use case, a virtual GPU may be included to handle graphical processing tasks.
Types of Hypervisors
VMs are created and managed using virtualization software, known as a hypervisor. There are two main types of hypervisors:
- Type 1 (Bare-Metal): This type of hypervisor runs directly on the host's hardware to control the hardware and manage guest operating systems. Examples include VMware ESXi and Microsoft Hyper-V.
- Type 2 (Hosted): This type of hypervisor runs on a conventional operating system and provides virtualization services. Examples include VMware Workstation and Oracle VirtualBox.
Use Cases for Virtual Machines
VMs are widely used in various environments due to their flexibility and efficiency:
- Cloud Computing: VMs enable cloud service providers to offer scalable and isolated computing environments.
- Data Centers: VMs help data centers efficiently utilize physical resources while isolating different workloads.
- Disaster Recovery: VMs can be used to create backups and replicas of critical systems for recovery purposes.
- Testing and Development: VMs provide isolated environments for developers to test and debug applications without affecting the host system.
- Running Multiple Operating Systems: VMs allow users to run different operating systems on a single physical machine for compatibility or learning purposes.
VM on IBM Mainframes
VM, often written VM/CMS, is a family of virtual machine operating systems used on IBM mainframes including the System/370, System/390, IBM Z and compatible systems. It replaced the older CP-67 that formed the basis of the CP/CMS operating system. It was first released as the free Virtual Machine Facility/370 for the S/370 in 1972, followed by chargeable upgrades and versions that added support for new hardware. VM creates virtual machines into which a conventional operating system may be loaded to allow user programs to run. Originally, that operating system was CMS, a simple single-user system similar to DOS. VM can also be used with a number of other IBM operating systems, including large systems like MVS or VSE, which are often run on their own without VM. In other cases, VM is used with a more specialized operating system or even programs that provided many OS features.