【IT168 专稿】可别混为一谈了!虚拟化与仿真不是一回事。本文详细介绍了两者之间的区别。
仿真
仿真(emulation)是指我们让一个系统的工作行为类似或模仿另一个不同系统时采取的做法。我们拿来我们已经拥有的系统A后,为它提供通常用于我们可能还没有的系统B的输入信息,希望让系统A获得与系统B同样的结果。
仿真涉及的不仅仅是简单地转换命令或机器指令;多年来,编译器和解释器一直负责这项工作。如今,我们针对的是整套的操作系统、应用编程接口(API)和函数;我们要让它们全在一个机器上工作,而它们又不是为该机器设计的――这个机器可能使用全然不同的方法和命令。想想这项任务居然有可能实现,有时确实不可思议,但几乎总是要在性能方面付出很大的代价。仿真需要很大的开销,会大幅降低数据吞吐率。
既然仿真会带来如此大的开销,为什么还要操这份心呢?因为我们可能需要进行下列其中一种操作:
·在硬件平台上运行不是为该硬件平台设计的操作系统。
·在其他设备上运行不是为该设备开发的某个应用程序(如在Mac机器上运行Windows程序)。
·读取由我们不再拥有或不再正常工作的设备写入到存储介质上的数据。
仿真技术对于防止系统被淘汰、保持数据可用起到了重要作用。仿真让我们可以模仿比较旧的软硬件,并使用最新技术来重建它们。仿真让我们可以使用最新平台来访问比较旧的应用程序、操作系统或数据,而比较旧的软件仍然认为自己运行在原来的那个环境。
仿真器(emulator)这个术语由IBM公司在1957年发明。1980年之前,仿真器单单指硬件。在谈论软件时,人们更偏爱使用模拟(simulation)这个术语。比方说,如果一台计算机专门为了运行为不同体系结构设计的程序而建造,它就被称为仿真器;而我们会使用模拟器(simulator)这个词来描述让我们可以在现代机器上运行比较旧程序(为不同平台而设计)的PC程序。如今,仿真既可以指硬件,也可以指软件。