运行虚拟机的物理机被称为“主机”、“主机计算机”、“主机操作系统”或简称为“主机”。使用其资源的虚拟机被称为“虚拟客户机”、“虚拟客户计算机”、“虚拟客户机操作系统”或简称为“客户机”。
一种称为虚拟机监控程序的软件可将必要的计算资源进行隔离,且支持创建和管理虚拟机。虚拟机监控程序将 CPU、内存和存储等计算资源视为资源池,从而轻松地在现有客户机或新虚拟机之间重新分配。
每个操作系统的运行方式与操作系统或应用在主机硬件上的常规运行方式相同。因此,虚拟机中模拟的最终用户体验与在物理机上运行实时操作系统的体验几乎完全相同。
只需通过数据文件来定义虚拟机,即可在不同计算机上实现相同的运行效果。虚拟机监控程序会将物理环境中的资源按需分配给各个虚拟机。物理硬件仍然负责执行操作,例如,虚拟机监控程序负责调度管理,CPU 则负责处理虚拟机发出的 CPU 指令。
当虚拟机处于运行状态时,如果用户或程序发出需要从物理环境获取额外资源的指令,虚拟机监控程序会将该请求调度到物理系统的资源上。此物理资源共享池可供虚拟机的操作系统和应用使用。
Linux® 环境中的内置虚拟机监控程序称为基于内核的虚拟机(KVM)。其他虚拟机监控程序包括 Microsoft Hyper-V 和开源的 Xen。
用于虚拟化的虚拟机监控程序分为两种:
1 类:1 类虚拟机监控程序为裸机形式。虚拟机监控程序直接将虚拟机资源调度到硬件上。KVM 就属于 1 类虚拟机监控程序。
2 类:2 类虚拟机监控程序为托管形式。虚拟机的资源被调度分配到主机操作系统上,然后由主机操作系统传递给硬件执行。VMware Workstation 和 Oracle VirtualBox 就是典型的 2 类虚拟机监控程序。