热门问题
时间线
聊天
视角

虚拟机器

计算机软件 来自维基百科,自由的百科全书

Remove ads

虚拟机(英语:virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台终端用户之间建立一种环境,而终端用户则是基于虚拟机这个软件所建立的环境来操作其它软件。虚拟机(VM)是计算机系统的仿真器,通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,能提供物理计算机的功能。

有不同种类的虚拟机,每种虚拟机具有不同的功能:

  • 系统虚拟机(也称为全虚拟化虚拟机)可代替物理计算机。它提供了运行整个操作系统所需的功能。虚拟机监视器(hypervisor)共享和管理硬件,从而允许有相互隔离但存在于同一物理机器上的多个环境。现代虚拟机监视器使用虚拟化专用硬件(主要是主机CPU)来进行硬件辅助虚拟化。
  • 程序虚拟机 被设计用来在与平台无关的环境中执行计算机程序。
Remove ads

定义

虚拟机最初由波佩克[注 1]与戈德堡定义为有效的、独立的真实机器的副本。当前包括跟任何真实机器无关的虚拟机[1]

例子: 用Java编写的程序可以通过对Java运行环境(JRE)软件发命令获得服务,取得期望的结果。透过提供这种服务,JRE起到了虚拟机的作用。程序不必为特定的操作系统或硬件编写。

虚拟机根据它们的运用和与直接机器的相关性分为两大类。“系统虚拟机”提供一个可以运行完整操作系统的完整系统平台。“程序虚拟机”则为运行单个计算机程序设计,这意味它支持单个进程。虚拟机的一个本质特点是运行在虚拟机上的软件被局限在虚拟机提供的资源里,也就是说它不能超出虚拟世界。“作业系统层虚拟化”不提供完整作业系统环境,将母机内核分给多个独立空间的应用程式,不同于系统虚拟机需要运行完整作业系统,也不像程序虚拟机运行特定程式语言。

系统虚拟机

Thumb
VirtualBox

例如:VirtualBoxVMware Workstation

程序虚拟机

例如:Java虚拟机(JVM)

例如:Docker

技术(硬件的模拟)

基于这种虚拟机,用户可以运行任何操作系统,比如可以在他们“个人的”虚拟电脑上运行两个不同的操作系统,这也被称为“访客”(guests)。这样的话,新版的实验性操作系统就可以与旧版的较稳定版本一同在单独的虚拟机上运行。这个过程甚至可以重复(recursive);IBM就在运行于旧版的虚拟机上的虚拟机上调试它新版的虚拟机操作系统——VM。

这个概念的一个早期使用者就是IBM大型计算机上的“VM/CMS time-sharing”产品,该产品使用的交互式计算单用户操作系统——CMS(Conversational Monitor System),相对来说比较简单,运行于VM上。通过这种方式,CMS编写起来就比较简单,就好像只有它一个在运行一样,VM操作系统就在幕后提供多任务以及资源管理服务。

当然,不是每个VM用户都必须运行CMS;有些用户选择在一个或者多个虚拟机上运行某种“OS/360”(或者“MVS”),来提供传统上的批处理任务。今天,IBM大型机还在使用VM,许多虚拟机上运行的是Linux操作系统。

VMware”、“TwoOStwo”、“SVISTA”软件包在现代电脑上都在处理类似截获硬件访问,模拟除了处理器以外的任何主板上的器件的事情。

“plex86”属于另外一种情况,它使用特定的打过补丁的内核,只能运行于“Linux”下,而且只能在其之上运行它。因此,它不是仿真处理器,它利用“bochs”来仿真主板设备。

现代电脑使用的“x86处理器架构”其实并不能满足Popek和Goldberg虚拟化要求。很明显,这种架构缺少所有特权机器指令都会产生异常的模式,而这种模式可以做到单指令的虚拟化。这导致“VMware”或类似的“x86虚拟软件”必须动态地重新编译特权模式代码。这种虚拟技术和运行于如“IBM System/370”、“Motorola MC68020”的原生态可虚拟架构上的“VM”相比,就会多出一些性能上的开销。Intel及AMD已经为自己的处理器/晶片组产品加入硬体虚拟化功能,Intel有Intel VT-x(CPU虚拟化)及Intel VT-d(IO虚拟化),AMD有AMD SVM(CPU虚拟化)及IOMMU(IO虚拟化)。

Remove ads

虚拟机器列表

虚拟软体的更多描述

下列的软体产品可以用来虚拟硬体,故可用于各种作业系统之上。

  • Adeos英语Adeos是一种硬体抽象层
  • KVM是一种Linux kernel模组,可以修正QEMU program使之可使用硬体虚拟实境(hardware virtualization)。
  • LLVM是一种新的动态编译平台。

虚拟机器比较

下面的表格比较了一些虚拟机软件的基本信息。请注意,这里说的是系统虚拟机Java虚拟机之类的程序虚拟机不算在内。

更多信息 名称, 作者 ...
Remove ads

注释

参考文献

Loading content...

外部链接

Loading content...

参见

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads