服务器 频道

勿混为一谈 仿真与虚拟化是两码事

  【IT168 专稿】可别混为一谈了!虚拟化与仿真不是一回事。本文详细介绍了两者之间的区别。

  仿真

  仿真(emulation)是指我们让一个系统的工作行为类似或模仿另一个不同系统时采取的做法。我们拿来我们已经拥有的系统A后,为它提供通常用于我们可能还没有的系统B的输入信息,希望让系统A获得与系统B同样的结果。

  仿真涉及的不仅仅是简单地转换命令或机器指令;多年来,编译器和解释器一直负责这项工作。如今,我们针对的是整套的操作系统、应用编程接口(API)和函数;我们要让它们全在一个机器上工作,而它们又不是为该机器设计的――这个机器可能使用全然不同的方法和命令。想想这项任务居然有可能实现,有时确实不可思议,但几乎总是要在性能方面付出很大的代价。仿真需要很大的开销,会大幅降低数据吞吐率。

  既然仿真会带来如此大的开销,为什么还要操这份心呢?因为我们可能需要进行下列其中一种操作:

  ·在硬件平台上运行不是为该硬件平台设计的操作系统。

  ·在其他设备上运行不是为该设备开发的某个应用程序(如在Mac机器上运行Windows程序)。

  ·读取由我们不再拥有或不再正常工作的设备写入到存储介质上的数据。

  仿真技术对于防止系统被淘汰、保持数据可用起到了重要作用。仿真让我们可以模仿比较旧的软硬件,并使用最新技术来重建它们。仿真让我们可以使用最新平台来访问比较旧的应用程序、操作系统或数据,而比较旧的软件仍然认为自己运行在原来的那个环境。

  仿真器(emulator)这个术语由IBM公司在1957年发明。1980年之前,仿真器单单指硬件。在谈论软件时,人们更偏爱使用模拟(simulation)这个术语。比方说,如果一台计算机专门为了运行为不同体系结构设计的程序而建造,它就被称为仿真器;而我们会使用模拟器(simulator)这个词来描述让我们可以在现代机器上运行比较旧程序(为不同平台而设计)的PC程序。如今,仿真既可以指硬件,也可以指软件。

 

  虚拟化

  虚拟化这项技术是指以一种完全实用的方式利用计算资源和设备,不管它们的物理布局或位置如何。这包括把单单一台物理计算机划分成多个"虚拟"服务器,就如同每个虚拟机在各自的专用硬件上运行,让每个虚拟机可以独立地重启动。另一方面,在存储虚拟化领域,服务器把多个物理设备当作单一的物理设备来看待。

  虚拟服务器是被精心隔离的软件"容器",它有自己的基于软件的CPU、内存、硬盘和网络连接。操作系统或应用程序――甚至虚拟服务器本身,或同一个网络上的其他计算机――区别不了虚拟机和物理机之间的差异。

  虚拟机提供了下列优势:

  ·它们与所有英特尔x86计算机兼容。

  ·它们彼此孤立,就好像它们是各自独立的物理机。

  ·每个都有完整、封装的计算环境。

  ·它们实际上与底层硬件独立。

  ·它们是使用现有硬件而创建的。

  IBM公司在上世纪60年代发明了虚拟化技术,那样体积庞大、价格昂贵的大型机就能并行运行多个应用程序和进程。到了八九十年代,虚拟化技术基本上被弃用了,人们改用客户机/服务器应用程序和分布式计算。然而如今的服务器和个人电脑与60年代的那些大型机一样,同样面临资源没有得到充分利用这个问题。

  VMware公司在上世纪90年代末发明了面向x86平台的虚拟化技术。最近,该公司推出了一款名为"融合"(Fusion)的产品,从而让Windows应用程序可以在使用OS X操作系统的Mac计算机上并行运行。

 

0
相关文章