在計算機科學中,硬件虛擬化(英語: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 | 主系統 | 目標系統 | 許可 |