定義
虛擬化技術與多任務以及
超執行緒技術是完全不同的。多任務是指在一個作業系統中多個程式同時一起運行,而在虛擬化技術中,則可以同時運行多個作業系統,而且每一個作業系統中都有多個程式運行,每一個
作業系統都運行在一個虛擬的CPU或者是虛擬主機上;而超執行緒技術只是單CPU模擬雙
CPU來平衡程式運行性能,這兩個模擬出來的CPU是不能分離的,只能協同工作。
虛擬化技術也與VMware Workstation等同樣能達到虛擬效果的軟體不同,是一個巨大的技術進步,具體表現在減少軟體
虛擬機相關開銷和支持更廣泛的作業系統方面。
純軟體虛擬化解決方案存在很多限制。“客戶”作業系統很多情況下是通過VMM(Virtual Machine Monitor,虛擬機監視器)來與硬體進行通信,由VMM來決定其對系統上所有虛擬機的訪問。(注意,大多數
處理器和記憶體訪問獨立於VMM,只在發生特定事件時才會涉及VMM,如
頁面錯誤。)在純軟體虛擬化解決方案中,VMM在軟體套件中的位置是傳統意義上作業系統所處的位置,而
作業系統的位置是傳統意義上應用程式所處的位置。
虛擬化技術是一套解決方案。完整的情況需要CPU、主機板晶片組、BIOS和軟體的支持,例如VMM軟體或者某些作業系統本身。即使只是CPU支持虛擬化技術,在配合VMM的軟體情況下,也會比完全不支持虛擬化技術的系統有更好的性能。
兩大CPU巨頭Intel和AMD都想方設法在虛擬化領域中占得先機,但是AMD的虛擬化技術在時間上要比Intel落後幾個月。Intel自2005年末開始便在其
處理器產品線中推廣套用Intel Virtualization Technology(Intel VT)虛擬化技術。
而AMD方面也已經發布了支持AMD Virtualization Technology(AMD VT)虛擬化技術的一系列處理器產品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,並且絕大多數的AMD下一代主流處理器,包括即將發布的Socket F接口的Opteron都將支持AMD VT虛擬化技術。
分類
虛擬機(Virtual machine或VM),可以像真實機器一樣運行程式的計算機的軟體實現
攜帶型應用程式,允許程式在攜帶型設備中運行而不用在作業系統中安裝
跨平台虛擬化,允許針對特定CPU或者作業系統的軟體不做修改就能運行在其他平台上,例如Wine
虛擬設備,運行於虛擬化平台之上,面向套用的虛擬機映像
完全虛擬化,敏感指令在作業系統和硬體之間被捕捉處理,客戶作業系統無需修改,所有軟體都能在虛擬機中運行,例如IBM CP/CMS,VirtualBox,VMware Workstation
硬體輔助虛擬化,利用硬體(主要是CPU)輔助處理敏感指令以實現完全虛擬化的功能,客戶作業系統無需修改,例如VMware Workstation,Xen,KVM
部分虛擬化,針對部分應用程式進行虛擬,而不是整個作業系統
準虛擬化/超虛擬化(paravirtualization),為應用程式提供與底層硬體相似但不相同的軟體接口,客戶作業系統需要進行修改,例如早期的Xen
作業系統級虛擬化,使作業系統核心支持多用戶空間實體,例如Parallels Virtuozzo Containers,Unix-like系統上的chroot,Solaris上的Zone
平台虛擬化,將作業系統和硬體平台資源分割開