798 字
4 分钟
1.6虚拟机

1.6.1 虚拟机的基本概念#

虚拟机是指通过虚拟化技术,将一台物理计算机抽象为多台逻辑上独立的计算环境,每台虚拟机都表现为完整硬件系统的精确复制品。虚拟化技术的核心在于隐藏底层物理硬件的细节,向上层提供统一且隔离的执行平台。目前主流的虚拟化方案分为两类。

1. 第一类虚拟机管理程序#

第一类虚拟机管理程序(又称裸金属架构)直接运行在物理硬件之上,是系统中唯一处于最高特权级的软件。它类似于一个轻量级的操作系统,负责管理硬件资源和并发调度多个虚拟机。每个虚拟机均可安装独立的操作系统(称为客户操作系统),彼此完全隔离。

在此类架构中,客户操作系统运行于虚拟内核态,它认为自己处于真实的CPU内核态,但实际上并非如此;其用户进程则运行在真实的用户态。当客户操作系统执行一条仅允许在真实内核态下执行的敏感指令时,会触发异常并陷入虚拟机管理程序。

在支持硬件虚拟化的CPU上,虚拟机管理程序能够根据执行上下文判断该指令源自客户操作系统还是用户程序:若为前者,则代为完成其功能;若为后者(用户程序非法执行敏感指令),则模拟真实硬件的异常响应行为。而在早期不支持硬件虚拟化的CPU上,所有敏感指令均被透明重定向到虚拟机管理程序,由其通过软件模拟实现相应功能。

2. 第二类虚拟机管理程序#

第二类虚拟机管理程序(又称寄居架构)以应用程序的形式运行在宿主操作系统(如Windows 或Linux )之上,依赖宿主系统进行资源分配与调度,本质上是一个用户态进程。尽管如此,它仍向客户操作系统伪装成完整的硬件平台。VMware Workstation 是x86平台上首个广泛使用的第二类虚拟机管理程序。

首次启动时,第二类虚拟机管理程序模拟一台新计算机的行为,用户可将客户操作系统安装到虚拟磁盘(实际上是宿主操作系统中的一个普通文件),安装完成后即可正常启动和运行。

虚拟化技术在Web主机领域应用广泛。若无虚拟化,服务商只能提供共享托管(用户无法控制软件环境)或独占托管(成本高昂)。借助虚拟化,单台物理服务器可同时运行多个虚拟机,每个虚拟机对用户而言都是一台完整的服务器,支持自定义操作系统与软件,且成本显著降低——这正是当前主流云服务器服务的基础。

评论