We know that the cloud hosts on cloud computing platforms are actually virtual machines, but we don’t feel it; using them is no different from using a real server, which is all thanks to Virtualization Technology. It can be said that virtualization technology is the core technology for implementing the infrastructure layer of cloud computing (IaaS). So what exactly is this virtualization technology?

The virtualization technology used in cloud computing is not a new technology. The company VMware, founded in 1998, specializes in virtual machine software and was later acquired by the data storage technology company EMC, which was subsequently acquired by Dell.
Let’s not talk about VMware’s history for now; let’s focus on their virtual machine software: VMware Workstation. This software allows multiple x86 virtual machines to be created and run simultaneously. Each virtual machine instance can run its own Guest Operating System, such as Windows, Linux, BSD, etc. In simple terms, VMware Workstation allows a real computer to run several operating systems at the same time.
From the perspective of the underlying operating system, each virtual machine is a user process; from the perspective of the Guest OS within the virtual machine, it owns the entire computer.
How Virtual Machines Work
Virtual machine software solves a key technical problem: how to make the Guest OS believe it is running on a real computer.

Architecture Diagram of VMware
The software that manages multiple virtual machines is called VMM (Virtual Machine Monitor), or hypervisor. VMM does three things to deceive the Guest OS: virtual CPU, virtual memory, and virtual I/O.
Virtual CPU: A data structure for virtual registers is prepared for the CPU of each virtual machine, tracking the values of all registers in the CPU. The complete state of the CPU is essentially the values of all registers; as long as the values of the registers appear correct to the Guest OS, the Guest OS can operate normally.
The Guest OS, as a user process, actually runs in the CPU’s ring 3 mode (lowest privilege), but VMM makes it believe it is running in the CPU’s ring 0 mode (privileged mode). If the Guest OS accesses registers in ring 3 mode, VMM will not intervene. However, if the Guest OS attempts to access certain registers in ring 3 mode, VMM directly modifies the values of the virtual registers, making the Guest OS believe it is indeed operating registers that can only be accessed in privileged mode.
Virtual Memory: VMM implements a three-level address translation from virtual memory to virtual machine physical memory to physical memory, solving the problem of Guest OS accessing memory. From the perspective of the Guest OS, addresses are still mapped from virtual memory to physical memory.
Virtual I/O: If VMM detects that the Guest OS wants to operate on a certain I/O device, it simulates this process through software. For example, if a read/write operation is performed on a disk, VMM changes this operation to read/write on a file.
In summary, the operation of the Guest OS is under the strict supervision of VMM. Within the limits of allowed permissions, the Guest OS can do anything, but if it exceeds its permissions, VMM must intervene.
Virtualization Technology and Cloud Computing
Currently, commonly used virtual machine technologies include VMware, Xen, and KVM. Although the concepts of virtualization are similar, the specific technologies used for virtualization differ.
VMware is commercial software that requires payment and is not open-source. Both Xen and KVM are open-source. However, Xen is complex to operate and has high maintenance costs; the official Linux kernel has removed support for Xen. KVM is part of the Linux Kernel, and thus will continue to be optimized and improved with Linux kernel upgrades. Currently, KVM is the most widely used virtual machine technology in the field of cloud computing.

Cloud Computing Management Software Manages Virtual Machines Through libvirt Interface
The currently popular cloud computing management software is OpenStack, which supports various virtual machine technologies. Libvirt is a free, open-source C library that supports mainstream virtualization tools on Linux. Libvirt was initially designed as a management API for Xen and later expanded to support multiple hypervisors. Cloud computing management software can control virtual machines created by various virtualization technologies through the libvirt interface.