虚拟化与仿真的区别

Virtualization & Emulation

虚拟化

虚拟化将单台物理计算机划分为多个“虚拟”服务器。这些虚拟机(VM)在专用硬件上运行,彼此独立,互不依赖。

通过虚拟化,您可以将单个物理系统划分为多个独立的环境,即虚拟机。这使您能够利用宿主硬件的专用资源,创建多个计算机模拟实例。

借助虚拟机监控程序(Hypervisor,也称为 VMM),虚拟化环境能够具备与宿主系统相同的服务器架构(SBSA)能力。

虚拟化技术功能强大,且拥有多种实现层级。

仿真(Emulation)

仿真是一种在某一系统上创建环境以模拟另一系统特性的技术。

仿真器(Emulator)能够模拟某个处理器的特性与逻辑,从而使其在另一个平台上高效运行。

仿真是在其他系统上运行操作系统或软件的绝佳方式;在此过程中,通常需要进行指令转换。

虽然仿真会带来较高的系统开销,但也具备诸多优势。它成本低廉、易于获取,并且能让我们在现有系统上运行那些早已过时的程序。

仿真器能够转换目标架构所需的CPU指令,并使其在另一种架构上成功运行。

仿真平台支持远程访问,且易于使用。对于嵌入式系统或操作系统开发而言,这是一项极具价值的技术,因为它无需改动底层操作系统即可进行开发与测试。

仿真通常能够应对待测设计(DUT)的规模,而无需受限于宿主系统的硬件能力。

虚拟化与仿真之间的主要区别

与虚拟化不同,仿真过程需要一个软件桥接层;而在虚拟化中,可以直接访问硬件。

虚拟机与仿真器之间的主要区别在于,虚拟机直接运行代码(利用不同的执行域),而仿真则涉及代码转换。

基本的仿真需要一个解释器。该解释器负责翻译源代码,并将其转换为宿主系统可读取的格式以便进一步处理。

相比之下,在仿真器中,客户操作系统并不直接运行在物理硬件上。仿真器的运行速度通常慢于虚拟机。仿真器不直接依赖 CPU 运行,而虚拟机则会利用 CPU 资源。

与仿真不同,虚拟化在物理硬件之上增加了一个控制层,用于管理对硬件的访问。这种机制有助于客户机之间的资源共享,因为虚拟化允许访问宿主机的资源。

虚拟机直接使用中央系统的资源。此外,虚拟机解决方案在成本和复杂性上通常高于仿真技术。但虚拟化能提供更高的吞吐量和极低的系统开销,并具备更优的备份与恢复方案。

结论

你可能会对这两者感到混淆,因为“仿真”(Emulation)一词在服务器虚拟化领域有时也被用来描述虚拟环境。

在仿真过程中,你需要在宿主系统之上完整地模拟目标硬件和软件。而在虚拟化过程中,则是根据需求仅模拟部分硬件,并借助客户操作系统(Guest OS)来确保程序在相同的架构下正确运行。

虚拟化与仿真的主要相似之处在于,它们都是以某种方式模拟硬件的程序。它们都允许你在一个环境中模拟并运行原本针对另一个环境设计的程序,尽管两者采用的技术手段各不相同。

虚拟化和仿真技术都提供了无需切换平台即可部署多个隔离服务的解决方案。这两种技术各自满足不同的需求,且处于不同的技术层面,因此不应将它们混为一谈。