虚拟机比较

虚拟机(Virtual Machine),在计算机科学中的体系结构里,是指一种特殊的软件,他可以在计算机平台终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。在计算机科学中,虚拟机是指可以像真实机器一样运行程序的计算机的软件实现。

目录

 [隐藏]

定义

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

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

虚拟机根据它们的运用和与直接机器的相关性分为两大类。系统虚拟机提供一个可以运行完整操作系统的完整系统平台。相反,程序虚拟机为运行单个计算机程序设计,这意味它支持单个进程。虚拟机的一个本质特点是运行在虚拟机上的软件被局限在虚拟机提供的资源里——它不能超出虚拟世界。

系统虚拟机

程序虚拟机

例如:Java虚拟机(JVM)

技术

硬件的仿真

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

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

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

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

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

现代电脑使用的x86处理器架构其实并不能满足Popek和Goldberg虚拟化要求。很明显,这种架构缺少所有特权机器指令都会产生异常的模式,而这种模式可以做到单指令的虚拟化。这导致VMware或类似的x86虚拟软件必须动态地重新编译特权模式代码。这种虚拟技术和运行于如IBM System/370、Motorola MC68020的本地态可虚拟架构上的VM相比,就会多出一些性能上的开销。IntelAMD都声称计划给未来的x86处理器加入x86虚拟化能力。

非本地系统的模拟

虚拟机列表

虚拟软件的更多描述

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

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

虚拟机比较

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

名称

作者

主CPU

客户CPU

主系统

客户系统

许可

Bochs

Kevin Lawton

任何

x86x86-64

WindowsWindows MobileLinuxIRIXAIXFreeBSDOpenBSDBeOSMac OS X

DOS,Windows,xBSD,Linux

LGPL

DOSBox

Peter Veenstra和Sjoerd与社区帮助

任何

x86

Linux,Windows,Mac OS Classic,Mac OS X,BeOS,FreeBSD,OpenBSD,Solaris,QNX,IRIX,MorphOS,AmigaOS

DOS

GPL

DOSEMU

社区项目

x86,x86-64

x86

Linux

DOS

GPL v2

Hercules

Roger Bowler

任何

z (IBM大型计算机)

Linux, Mac OS X,Solaris,Windows

OS/360,OS/390,z/OS,z/Linux

QPL

Hyper-V

微软

x64+硬件辅助虚拟(AMD-VIntel VT

x64x86

Windows 2008

Windows 2000Windows 2003Windows 2008Windows XPWindows VistaLinux

私有(免费)

KVM

Red Hat

Intel/AMD处理器与x86虚拟化

x86/x86-64

Linux

Linux,Windows

GPL v2

Logical Domains

太阳计算机系统公司

UltraSPARC T1UltraSPARC T2

兼容

Solaris

Solaris,Linux,FreeBSD

?

OpenVZ

社区项目,SWsoft支持

Intel x86,x86-64,IA-64,PowerPC64,SPARC/64

Intel x86,x86-64,IA-64,PowerPC64,SPARC/64

Linux

各种Linux发行版

GPL

Oracle VM

甲骨文公司

Intel x86,x86-64,Intel VT-x

Intel x86,x86-64,Intel VT-x

无(裸机安装)

Microsoft WindowsOracle Enterprise LinuxRed Hat Enterprise Linux

免费,商业

Parallels Workstation

Parallels公司

x86,Intel VT-x

x86

Windows,Linux

Windows,Linux,FreeBSD,OS/2eComStation,MS-DOS,Solaris

私有

PearPC

Sebastian Biallas

x86,x86-64,PowerPC

PowerPC

Windows,Linux,Mac OS X,NetBSD

Mac OS X,Darwin,Linux

GPL

QEMU

Fabrice Bellard(其他开发者帮助)

x86,x86-64,IA-64,PowerPC,Alpha,SPARC 32 and 64,ARM,S/390,M68k

x86,x86-64,ARM,SPARC 32 and 64,PowerPC,MIPS

Windows,Linux,Mac OS X,Solaris,FreeBSD,OpenBSD,BeOS

经常变化[1]

GPL/LGPL

QEMUkqemu模块)

Fabrice Bellard

Intel x86,x86-64

Intel x86,x86-64

Linux,FreeBSD,OpenBSD,Solaris,Windows

经常变化[2]

GPL/LGPL

QEMUqvm86模块)

Paul Brook

x86

x86

Linux,NetBSD,Windows

经常变化

GPL

SimNow

AMD

x86-64

x86-64

Linux(64位),Windows(64位)

Linux,Windows(32位和64位)

AMD公司专有

Sun xVM Server

太阳计算机系统公司

x86-64,SPARC

x86-64,SPARC

无:裸机执行

Windows XP & 2003 Server(仅x86-64),Linux,Solaris

GPL v3

Oracle VirtualBox

甲骨文公司

x86,x86-64,VT-x,AMD-V

x86,(x86-64仅在VirtualBox 2及x86-64主机上)

Windows,Linux,Mac OS X (Intel),Solaris, FreeBSD

DOS,Windows,Linux,OS/2,FreeBSD,Solaris

GPL v2;完整版本中的额外特性是专有的(免费供个人与教育机构使用和评价)

User Mode Linux

Jeff Dike(其他开发者帮助)

x86,x86-64,PowerPC

x86,x86-64,PowerPC

Linux

Linux

GPL v2

Virtual IronVirtual Iron 3.1

Virtual Iron软件公司(已被Oracle收购 May 13, 2009)

x86 VT-x,x86-64 AMD-V

x86,x86-64

无:裸机执行

Windows,Red HatSuSE

完整的产品是私有的[3];几个组成部分是GPL v2[4]

Virtual PC2007

Microsoft

x86,x86-64

x86

Windows Vista(商业版,企业版,旗舰版),XP Pro,XP Tablet PC版

DOS,Windows,OS/2,Linux(Suse,Xubuntu),OpenSolaris(Belenix)

私有(从2006年7月起免费)

Virtual Server 2005 R2

Microsoft

Intel x86,x86-64

Intel x86

Windows 2003,XP

Windows NT,2000,2003,Linux (Red Hat and SUSE)

私有(免费)

Virtuozzo

SWsoft

x86,IA-64,x86-64

x86,IA-64,x86-64

Linux & Windows

各种Linux发行版;Windows

私有

VMware ESX Server

VMware

x86, x86-64

x86, x86-64

无:裸机安装

Windows,Red Hat,SuSE,Ubuntu,Netware,Solaris,FreeBSD等

私有

VMware ESXi Server

VMware

x86,x86-64

x86,x86-64

无:裸机安装(嵌入式)

Windows,Red Hat,SuSE,Ubuntu,Netware,Solaris,FreeBSD等

私有(免费)

VMware Fusion

VMware

x86,Intel VT-x

x86,x86-64

Mac OS X (Intel)

Windows,Linux,Netware,Solaris,其他

私有

VMware Server

VMware

x86,x86-64

x86,x86-64

Windows,Linux

DOS,Windows,Linux,FreeBSD,Netware,Solaris,虚拟设备

私有(免费)

VMware Workstation6.0

VMware

x86,x86-64

x86,x86-64

Windows,Linux

DOS,Windows,Linux,FreeBSD,Netware,Solaris,Darwin,虚拟设备

私有

VMware Player 2.0

VMware

x86,x86-64

x86,x86-64

Windows,Linux

DOS,Windows,Linux,FreeBSD,Netware,Solaris,Darwin,虚拟设备

私有(免费)

Xen

英国剑桥大学IntelAMD

x86,x86-64

x86,x86-64

NetBSD,Linux,Solaris

Linux, Solaris, Windows XP & 2003 Server(需要3.0版和Vanderpool 或Pacifica),九号计划FreeBSD

GPL

名称

作者

主CPU

客户CPU

主系统

客户系统

许可

相关条目

来源与注释

  1. ^ Gerald J. Popek,美国计算机科学家,曾提出虚拟机的实现需求,通称波佩克与戈德堡虚拟化需求
  2. ^ Smith, Daniel E.; Nair, Ravi. The Architecture of Virtual Machines. Computer. IEEE Computer Society, 38 (5): 32–38.doi:10.1109/MC.2005.173.

外部链接

2个分类虚拟化软件 | 操作系统技术


posted @ 2011-05-10 12:42  shuaixf  阅读(566)  评论(0编辑  收藏  举报