传统计算机
传统计算机是指基于物理硬件直接运行操作系统和应用程序的计算机系统。它们依赖CPU、内存、硬盘等物理组件执行计算任务,操作系统直接对这些硬件资源进行管理,为用户提供操作界面和应用程序运行环境。传统计算机的性能与功能受限于物理硬件的能力,因此用户需要定期维护和升级硬件,以满足不断增长的计算需求。此外,一台物理计算机通常只能运行一个操作系统实例,且运行过程中无法同时支持多个操作系统环境。
虚拟机
在商业化环境中,出于安全考虑,企业不希望将所有服务都部署在同一台物理计算机上,这会带来单点故障的风险(一个服务的故障可能导致整个系统瘫痪);同时,为每个服务单独购置一台物理计算机,又会造成硬件资源的浪费。为解决这一矛盾,虚拟化技术应运而生, 虚拟机(Virtual Machine) 就是基于虚拟化技术的一种计算环境,它可以将一台物理机虚拟化成多台独立的虚拟计算机,每台虚拟机都可以运行独立的操作系统,并且相互之间完全隔离。虚拟机通过虚拟化软件(如VMware、VirtualBox)实现对物理资源的抽象和分配,使得多个虚拟机可以共享同一台物理计算机的硬件资源,同时又能保证各自的独立性和安全性。这种方式不仅提高了资源利用率,还增强了系统的灵活性和可管理性,成为现代数据中心和云计算环境中的重要基础设施。
虚拟机管理程序
虚拟机管理程序(Hypervisor) 是虚拟化技术的核心组件,主要负责虚拟机的创建、运行与全生命周期管理。根据其运行方式的不同,虚拟机管理程序可分为两类:Type 1 和 Type 2(没错,名字就是这么简单)。
类型1(Type 1)虚拟机管理程序运行于内核空间,也被称为裸机(bare-metal)虚拟机管理程序,典型代表有VMware ESXi和Microsoft Hyper-V。它能够直接接管并管理物理硬件资源,将资源合理分配给各个虚拟机,实现硬件级别的虚拟化,具备较高的运行性能,因此广泛适用于企业级数据中心和云计算环境。
这里有个疑问:这类虚拟机中,只有管理程序运行在内核空间,虚拟机本身仍处于用户空间,虚拟机内部的操作系统并不知道自己运行在虚拟环境中,会误以为自己直接运行在物理机上,进而正常执行特权指令。我们都知道,特权指令本应只能在内核空间执行,这样的运行方式会不会出现问题?答案是不会,因为虚拟机管理程序内置了一套 指令捕获(Instruction Trapping) 机制:当虚拟机中的操作系统执行特权指令时,这些指令会被虚拟机管理程序及时捕获并处理,管理程序会模拟特权指令的执行行为,再将结果反馈给虚拟机,从而确保虚拟机能够正常、安全地运行。
另一种是运行在用户空间的类型2(Type 2)虚拟机管理程序,例如VMware Workstation和Oracle VirtualBox。它依赖宿主操作系统提供的资源管理能力和设备驱动程序来运行虚拟机,运行性能相对较低,更适合个人用户、开发测试等非高性能需求场景。Type 2虚拟机管理程序的核心优势的是安装和使用便捷,无需专门的硬件支持,能够在现有操作系统上快速部署虚拟机;不过受其“宿主系统+管理程序+虚拟机”的套娃式结构影响,性能会受到一定限制,无法满足高性能计算需求。