技術
virtual技術和多任務(multitasking)、HyperThreading
超執行緒技術是完全不同的。多任務是指在一個作業系統中多個程式同時並行運行,而在
虛擬技術中,你可以擁有多個作業系統同時運行,每一個作業系統中都有多個程式運行,每一個作業系統都運行在一個虛擬的CPU或者是虛擬主機上。而HyperThreading
超執行緒只是在SMP系統(Symmetric Multi Processing)中單CPU模擬雙CPU來平衡程式運行性能,這兩個模擬出來的CPU是不能分離的,只能協同工作。
當然了,如果一個CPU同時支持HyperThreading和Virtualization技術的話,每一個虛擬CPU在各自的作業系統中都被看成是兩個對稱
多任務處理的CPU。
虛擬技術可能讓人聯想到早期CPU上的“Virtual 8086”技術,這種V86模式技術是用來兼容早期的8086/8088處理器而設計的,最早出現在386機器上。使用V86模式你可以創建好幾個並行虛擬8086計算機來運行多個DOS程式,同樣道理,使用VT技術你也可以創建幾個完整的虛擬電腦來運行幾個完整的作業系統。
可是既然已經有VMware等這種可以達到虛擬目的的軟體,為什麼我們還要努力來實現硬體CPU內部的虛擬技術呢?這是因為硬體CPU的虛擬技術有許多優勢。支持
虛擬技術的CPU帶有多餘的
指令集來控制虛擬過程,通過這些指令集,控制軟體VMM(Virtual Machine Monitor)會很容易提高性能,相比軟體的虛擬實現方式會很大程度上提高性能。
工作原理
帶有
虛擬技術的處理器具有額外的
指令集,叫做Virtual Machine Extensions,簡稱VMX。VMX給CPU帶來了10個新的虛擬專用指令:VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUCH, VMRESUME, VMXOFF and VMXON。
虛擬技術運行原理圖
在虛擬狀態下有兩種工作模式:root操作和非root操作。通常只有虛擬操作軟體——Virtual Machine Monitor (VMM)能夠運行在root操作模式下,而作業系統在
虛擬機的頂層運行在非root操作模式下。運行在虛擬機頂層的軟體同時也叫做“guest software”。
要進入虛擬模式,VMM需要執行VMXON指令來調入VMM軟體,VMM軟體使用VMLAUNCH指令來進入每一個虛擬機,使用VMRESUME指令來退出。如果想要退出虛擬模式,可以使用VMM運行VMXOFF指令。在圖中的每個guest系統可以是不同的作業系統,同時運行自身的軟體。
實現方法
根據intel的資料,intel
虛擬技術的實現需要同時具有處理器、
晶片組、BIOS、VMM軟體的支持,這些特定的平台軟體必須全部到位。同時性能方面要視不同的硬體和軟體平台而定,intel虛擬技術支持的BIOS和VMM程式現在正在開發之中。
據我們所知,現在還沒有支持虛擬技術的VMM軟體,所以即使你買了一款支持VT技術的CPU,你還要等待Intel放出VMM軟體才能使用上VT技術。同時還要等主機板廠商放出VMM支持的BIOS(或者保證使得現有的主機板BIOS支持虛擬技術)。
現在未知的就是,至關重要的虛擬技術VMM軟體intel將是免費放出還是需要交費才可以。定價如何才合適呢?類似的軟體
虛擬技術,VMware Workstation 5價格為189~199美元之間,所以我們希望intel即使不免費提供VMM軟體也會比這個價格要少很多。
intel虛擬技術承諾比VMWare軟體虛擬技術性能要高的多,這個我們要等到VT VMM軟體可用的時候才能夠看個究竟了。