虚拟机

来自BetaWorld 百科

虚拟机(英文全称:Virtual Machine)在计算机中是指一类较为特殊的软件,通过相应的软件技术和硬件技术,在计算机硬件层和用户之间再建立一种特殊的软件环境,从而实现在一台实体计算机上可以同时运行多个计算机的虚拟实例的软件。通过运用虚拟机软件,用户可以在一台计算机中运行不同的操作系统(比如Windows和Linux),甚至能运行与物理计算机完全不同的计算机实例。从而节省成本和方便管理。

在虚拟机中被用来执行一个或多个虚拟机器的电脑称为主体机(host machine),这些虚拟机器则称为客户机(guest machine)。客户机和主体机一起共享主体机器的硬件资源。

在这里,我们只讨论能运行完整系统实例的虚拟机。故Java虚拟机,Viusal Basic虚拟机等一系列程序虚拟机不在讨论之列。我们按照虚拟化程度的不同分为系统(同构)虚拟机和实例(异构)虚拟机。

同构虚拟机

同构虚拟机一般建立在同架构的实体计算机上。通过虚拟机监视器(VMM,或称为HyperVisor)截获并转换虚拟机的指令让实体计算机的CPU得以顺利执行指令并反馈给虚拟机。一般来说同构虚拟机只能运行与主机同等架构的操作系统(例如X86计算机可以运行Windows的X86系统和Linux的X86版本)。

在早期,虚拟机是通过纯软件转换(例如VMware Workstation的二进制转换)去执行指令,这会让虚拟机的性能相比实体机有一定量的损失。后面Intel和AMD在自己的CPU中加入了虚拟化指令集。通过硬件虚拟化指令集从而可以直接让虚拟机监视器无需或者转换较少的虚拟机指令,直接调用硬件去运行指令,从而让虚拟机的运行效率有了巨大的提高。

常见的同构虚拟机主要有VMware WorkstationVirtual Box还有微软的Hyper-V

异构虚拟机

异构虚拟机和同构虚拟机一样同样通过虚拟机监视器(VMM)截获并转换虚拟机的指令让实体计算机的CPU得以顺利执行指令。但是通过复杂的转换技术,可以在两种不同架构的计算机的指令集间相互转换。从而模拟出架构完全不同的虚拟机。这种虚拟机虚拟化程度比系统虚拟机高出不少,甚至完全虚拟。所以也被称为模拟器(Emulator)。

虽然虚拟化程度极高,但因为转换指令集的局限性。运行效率会比同构虚拟机低不少。

常见的实例虚拟机包括Bochs(完全模拟X86 PC)、DOSBOX(完全模拟一台运行DOS的计算机)。

在Beta中常用到的虚拟机软件

  • 同构模拟
    • VMware Workstation
    • VirtualBox
    • Microsoft Virtual PC(因为其在Windows 8Windows 8.1需要修改(32位改文件名 64位换vmm.sys)才能运行,在Windows 10 v1507及以上的版本无法运行。建议用户使用Pcem/86Box)
  • 异构模拟
    • Bochs
    • Pcem/86Box
  • 同构模拟异构模拟均可用
    • Qemu(主要用于模拟Windows 10的ARM64版本)

另请参阅

虚拟环境