硬件虚拟化也称作完全虚拟化
在计算机科学中,硬件虚拟化(英语:Hardware virtualization)是一种对计算机或操作系统的虚拟。虚拟化对用户隐藏了真实的计算机硬件,表现出另一个抽象计算平台。
简介
在计算机集群中,许多小型服务器正在被一个大型服务器取代以增加硬件资源的利用率(如CPU等)。虽然硬件正在被整合,但是典型的操作系统仍然是独立的。取而代之地,每一个运行在独立的服务器上的操作系统被转移到在虚拟机中。大型的服务器可以“寄宿”许多这样的“客户”虚拟机。这就是物理到虚拟(Physical-to-Virtual, P2V)的转换。
虚拟机比真实的机器可以被更容易从外部被控制和检查,并且可以配置更灵活。这在内核开发与操作系统课程教学中尤为有用。[3]
创建一个新的虚拟机不需要预先购买硬件。同时,一个新的虚拟机可以容易地从一台计算机转移到另一台上。举例来说,一个销售员可以复制一个包含试用版软件的虚拟机到他的笔记本电脑去访问他的客户而不用更换电脑。类似的,虚拟机中的故障不会对宿主机产生损害,所以不会令笔记本上的操作系统死机。
由于可以被容易地迁移,虚拟机可以被用于远距离灾难恢复方案。
平台虚拟化的方案有很多。
虚拟化的原因
在计算机集群中,许多小型服务器正在被一个大型服务器取代以增加硬件资源的利用率(如CPU等)。虽然硬件正在被整合,但是典型的操作系统仍然是独立的。取而代之地,每一个运行在独立的服务器上的操作系统被转移到在虚拟机中。大型的服务器可以“寄宿”许多这样的“客户”虚拟机。这就是物理到虚拟(Physical-to-Virtual, P2V)的转换。
虚拟机比真实的机器可以被更容易从外部被控制和检查,并且可以配置更灵活。这在内核开发与操作系统课程教学中尤为有用。[3]
创建一个新的虚拟机不需要预先购买硬件。同时,一个新的虚拟机可以容易地从一台计算机转移到另一台上。举例来说,一个销售员可以复制一个包含试用版软件的虚拟机到他的笔记本电脑去访问他的客户而不用更换电脑。类似的,虚拟机中的故障不会对宿主机产生损害,所以不会令笔记本上的操作系统死机。
由于可以被容易地迁移,虚拟机可以被用于远距离灾难恢复方案。
完全虚拟化和半虚拟化
完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统>可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。
全虚拟化
在全虚拟化(full virtualization)中,虚拟机模拟一个足够强大的硬件使客户机操作系统独立运行。这种方案最早在1966年被虚拟机家族的先锋IBM CP-40与CP-67使用。支持完全虚拟化的虚拟机软件包括Parallels Workstation、 Parallels Desktop for Mac、VirtualBox、Virtual Iron、Oracle VM、Microsoft Virtual PC、Virtual Server、Hyper-V、VMware Workstation、VMware Server(原GSX Server)、QEMU、Adeos、Mac-on-Linux、Win4BSD、Win4Lin Pro、以及Egenera vBlade technology等
硬件辅助虚拟化
在硬件辅助虚拟化(hardware-assisted virtualization)中,硬件提供结构支持帮助创建虚拟机监视并允许客户机操作系统独立运行。硬件辅助虚拟化在1972年开始运行,它在IBM System/370上运行,使用了第一个虚拟机操作系统VM/370。在2005年与2006年,Intel和AMD为虚拟化提供了额外的硬件支持。支持硬件辅助虚拟化的有 Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac,VirtualBox和Parallels Workstation。
支持完整的虚拟化技术的硬件平台包括:
x86 (and x86_64)—AMD-V (代号Pacifica), Intel VT-x(代号Vanderpool)
IOMMU 由AMD和Intel共同开发。
Power Architecture (IBM/Power.org)
Virtage (Hitachi)
UltraSPARC T1, T2 及 T2+ (Sun)
部分虚拟化
在部分虚拟化(partial virtualization)中(包括地址空间虚拟化),虚拟机模拟数个(但不是全部)底层硬件环境,特别是地址空间。这样的环境支持资源共享和线程独立,但是不允许独立的客户机操作系统。虽然这并不被视为一般意义上的虚拟机,但这在历史上是非常重要的一页。这项技术曾被用于CTSS(试验性的IBM M44/44X),以及争议性的系统比如MVS及Commodore 64(两个都是“task switch”程序)。
平行虚拟化
在平行虚拟化(paravirtualization)中,虚拟机不需要模拟硬件,而是提供一个特殊的API只能被特制的客户机操作系统使用。
操作系统层虚拟化
在操作系统层虚拟化(OS-level virtualization)中,独立主机被虚拟化在操作系统层中,这使得多个独立且安全虚拟化的服务器运行在一台计算机上。客户操作系统环境与宿主服务器分享同一个操作系统,例如,相同的系统内核被用来创建客户机环境。程序运行在被视为独立系统的客户机环境中。这种方式由FreeBSD jails首创;类似的例子包括Solaris Containers, OpenVZ, Linux-VServer, AIX Workload Partitions, Parallels Virtuozzo Containers, 以及 iCore Virtual Accounts。
常见的虚拟机
名称作者主CPU目标CPU主系统目标系统许可
Xen
英国剑桥大学,Intel,AMD
x86,x86-64
x86,x86-64
NetBSD,Linux,Solaris
Linux,Solaris,Windows XP & 2003 Server(需要3.0版和Vanderpool或Pacifica),九号项目,FreeBSD
GPL
VMware Workstation 6.0
VMware
x86,x86-64
x86,x86-64
Windows,Linux
DOS,Windows,Linux,FreeBSD,Netware,Solaris,Darwin,虚拟设备
私有
VMware Server
VMware
x86,x86-64
x86,x86-64
Windows,Linux
DOS,Windows,Linux,FreeBSD,Netware,Solaris,虚拟设备
私有(免费)
VMware Player2.0
VMware
x86,x86-64
x86,x86-64
Windows,Linux
DOS,Windows,Linux,FreeBSD,Netware,Solaris,Darwin,虚拟设备
私有(免费)
VMware Fusion
VMware
x86,Intel VT-x
x86,x86-64
Mac OS X(Intel)
Windows,Linux,Netware,Solaris
私有
VMware ESXi Server
VMware
x86,x86-64
x86,x86-64
无:裸机安装(嵌入式)
Windows,Red Hat,SuSE,Ubuntu,Netware,Solaris,FreeBSD
私有
VMware ESX Server
VMware
x86, x86-64
x86, x86-64
无:裸机安装
Windows,Red Hat,SuSE,Ubuntu,Netware,Solaris,FreeBSD
私有
Virtuozzo
SWsoft
x86,IA-64,x86-64
x86,IA-64,x86-64
Linux & Windows
各种Linux发行版;Windows
私有
Virtual Server2005 R2
Microsoft
Intel x86,x86-64
Intel x86
Windows 2003,XP
Windows NT,2000,2003,Linux(Red Hat and SUSE)
私有(免费)
Virtual PC 2007
Microsoft
x86,x86-64
x86
Windows Vista(商业版,企业版,旗舰版),XP Pro,XP Tablet PC版
DOS,Windows,OS/2,Linux(Suse,Xubuntu),OpenSolaris(Belenix)
私有(从2006年7月起免费)
Virtual IronVirtual Iron 3.1
Virtual Iron软件公司(已被Oracle收购May 13, 2009)
x86 VT-x,x86-64 AMD-V
x86,x86-64
无:裸机执行
Windows,Red Hat,SuSE
完整的产品是私有的[3];几个组成部分是GPL v2[4]
User Mode Linux
Jeff Dike(其他开发者帮助)
x86,x86-64,PowerPC
x86,x86-64,PowerPC
Linux
Linux
GPL v2
Sun xVM Server
太阳计算机系统公司
x86-64,SPARC
x86-64,SPARC
无:裸机执行
Windows XP & 2003 Server(仅x86-64),Linux,Solaris
GPL v3
SimNow
AMD
x86-64
x86-64
Linux(64位),Windows(64位)
Linux,Windows(32位和64位)
AMD公司专有
QEMU(qvm86模块)
Paul Brook
x86
x86
Linux,NetBSD,Windows
经常变化
GPL
QEMU(kqemu模块)
Fabrice Bellard
Intel x86,x86-64
Intel x86,x86-64
Linux,FreeBSD,OpenBSD,Solaris,Windows
经常变化[2]
GPL/LGPL
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
Proxmox VE
Proxmox
x86-64
无:裸机安装
Windows,Linux
免费、付费 都有
PearPC
Sebastian Biallas
x86,x86-64,PowerPC
PowerPC
Windows,Linux,Mac OS X,NetBSD
Mac OS X,Darwin,Linux
GPL
Parallels Workstation
Parallels公司
x86,Intel VT-x
x86
Windows,Linux
Windows,Linux,FreeBSD,OS/2,eComStation,MS-DOS,Solaris
私有
Oracle VM
甲骨文公司
Intel x86,x86-64,Intel VT-x
Intel x86,x86-64,Intel VT-x
无(裸机安装)
Microsoft Windows,Oracle Enterprise Linux,Red Hat Enterprise Linux
免费,商业
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;完整版本中的额外特性是专有的(免费供个人与教育机构使用和评价)
OpenVZ
社区项目,SWsoft支持
Intel x86,x86-64,IA-64,PowerPC64,SPARC/64
Intel x86,x86-64,IA-64,PowerPC64,SPARC/64
Linux
各种Linux发行版
GPL
Logical Domains
太阳计算机系统公司
UltraSPARC T1,UltraSPARC T2
兼容
Solaris
Solaris,Linux,FreeBSD
?
KVM
Red Hat
Intel/AMD处理器与x86虚拟化
x86/x86-64
Linux
Linux,Windows
GPL v2
Hyper-V
微软
x86-64+硬件辅助虚拟(AMD-V或Intel VT)
x86-64,x86
Windows Server 2008, Windows Server 2012, Windows 8
Windows 2000,Windows 2003,Windows 2008,Windows XP,Windows Vista,Linux
私有(免费)
Hercules
Roger Bowler
任何
z(IBM大型计算机)
Linux,Mac OS X,Solaris,Windows
OS/360,OS/390,z/OS,z/Linux
QPL
DOSEMU
社区项目
x86,x86-64
x86
Linux
DOS
GPL v2
DOSBox
Peter Veenstra和Sjoerd与社区帮助
任何
x86
Linux,Windows,Mac OS Classic,Mac OS X,BeOS,FreeBSD,OpenBSD,Solaris,QNX,IRIX,MorphOS,AmigaOS
DOS
GPL
CHARON
Stromasys
x86,x86-64
DEC PDP11,Alpha, VAX, SUN SPARC,HP3000
Windows,Linux, Solaris
Solaris/SunOS,Tru64,OpenVMS,Ultrix
私有
Bochs
Kevin Lawton
任何
x86,x86-64
Windows,Windows Mobile,Linux,IRIX,AIX,FreeBSD,OpenBSD,BeOS,Mac OS X,Android
DOS,Windows,xBSD,Linux
LGPL
名称作者主CPU目标CPU主系统目标系统许可