VMware公司目前為EMC公司的全資子公司。
公司類型 | 上市公司 (NYSE:VMW ) |
成立時間 | 1998年 |
總部地點 | 美國加州帕羅奧多Hillview大道3401號 |
郵政編號 | 94304 |
服務範圍 | {{{area_served}}} |
描述
運行VMware工作站進程的計算機和作業系統實例被稱為宿主機.在一個虛擬機中運行的作業系統實例被稱為虛擬機客戶。類似仿真器,VMware工作站為客戶作業系統提供完全虛擬化的硬體集-例如,客戶機只會檢測到一個AMD PCnet網路適配器,而和宿主機上真正安裝的網路適配器的製造和型號無關。VMware在虛擬環境中將所有設備虛擬化,包括視頻適配器、網路適配器、以及硬碟適配器。它還為USB、串列和並行設備提供傳遞驅動程式(pass-through drivers,指將對這些虛擬設備的訪問傳遞到真實物理設備的驅動程式)。
由於與宿主機的真實硬體無關,所有虛擬機客戶使用相同的硬體驅動程式,虛擬機實例是對各種計算機高度可移植的。例如,一個運行中的虛擬機可以被暫停下來,並被拷貝到另外一台作為宿主的真實計算機上,然後從其被暫停的確切位置恢復運行。藉助VMware的VirtualCenter(虛擬機中心)產品中一種稱為Vmotion的新功能,甚至可以在移動一個虛擬機時不必將其暫停-就是說現在即使在向不同的宿主機上移植虛擬機時,這些虛擬機仍然可以保持運行。
實現
傳統的模擬器,如Bochs,透過調用宿主機上的軟體子程式逐條執行每一道客戶機的CPU指令,以此模擬客戶機的微處理器。這種抽象化的方法,可使宿主機模擬出不同於自身微處理器的環境,讓客戶機運行。然而這類模擬器運行得非常慢。
一種更有效率的方式是在初次執行客戶機指令時動態地重新編譯那些機器指令塊,以後用到這些指令時直接執行經過翻譯的代碼。這種方式是由微軟的Virtual PC for Mac OS X產品、以及Fabrice Bellard的QEMU產品(不含近期的kqemu附加模組的)所使用的方式。
和Virtual PC for Windows產品及帶有kqemu附加模組的QEMU產品一樣,VMware工作站使用了一種更加最佳化的方式,在儘可能的情況下直接運行程式代碼,在x86中這是執行用戶模式和虛擬8086模式的程式代碼的情況而言。當不能直接運行程式代碼時,這幾種軟體產品會動態地重寫代碼,這是在執行核心級別和實模式的程式代碼的情況而言。在VMware中,經過翻譯的代碼是被放入記憶體的空閒區域中的,一般是在地址空間的尾部,這個區域可以隨即被保護起來並通過分段機制標記為不可見的。由於這些原因,VMware比仿真器顯著地快,能以超過在真實硬體上運行速度的80%的速度運行虛擬的客戶作業系統。VMware對在運行高強度計算的應用程式時只有小到3%-5%的系統開銷而自豪。
缺點是客戶作業系統的指令代碼必須和宿主機的CPU兼容。因此不同於仿真器,VMware工作站不能用來在一個英特爾x86處理器上運行Mac/PPC軟體。另一個缺點是通常不可能有效率地嵌套使用VMware虛擬機(指在虛擬機客戶中運行另一個VMware虛擬機,即以一個虛擬機客戶作為宿主機再運行VMware)。最後,儘管VMware虛擬機是運行於用戶模式下的,VMware工作站宿主程式本身必須在宿主作業系統下安裝多種驅動程式,尤其是為了能動態切換GDT和IDT表。
最後一點說明:經常有人錯誤地認為象VMware或Virtual PC這類虛擬機產品是替換不良指令或簡單地在用戶模式下運行核心代碼。這兩種方式都不能用於x86。替換指令的意思可以這么理解:假設要執行指令試圖讀取該指令本身的代碼,它會吃驚地發現沒有找到預期的內容。因為實際上不可能在允許指令正常執行的同時又保護其代碼不被讀取,要實現指令替換是複雜的。在用戶模式下不加改變地運行代碼同樣也是不可能的,這是因為在用戶模式下,大部分僅讀取機器狀態的指令不產生異常、也不能正確反映程式的真實狀態,此外某些指令的行為會悄悄地有所變化。重寫指令總是必需的;必要時會模擬初始位置的當前指令指針,硬編碼的斷點也特別地會被重新映射。
特點
除了為到網路適配器、CD-ROM讀盤機、硬碟驅動器、以及USB設備的訪問提供了橋樑外,VMware工作站還提供了模擬某些硬體的能力。例如,能將一個ISO檔案作為一張CDROM安裝在系統上、也能將.vmdk檔案作為硬碟驅動器安裝、以及可將網路適配器驅動程式配置為通過宿主計算機使用網路地址轉換(NAT)來訪問網路,而非使用與宿主機橋接的方式(該方式必須為宿主網路上的每個客戶作業系統分配一個IP位址)。
VMware工作站還允許無須將LiveCD燒錄到真正的光碟上、也無須重啟計算機,而對這些LiveCD進行測試。還可以捕獲在VMware工作站下運行的某個作業系統的快照。每個快照可以用來在任何時候將虛擬機回滾到保存的狀態。這種多快照功能使VMware工作站成為銷售人員演示複雜的軟體產品、開發人員建立虛擬開發和測試環境的非常流行的工具。VMware工作站包含有將多個虛擬機指定為編隊的能力,編隊可以作為一個物體來開機、關機、掛起和恢復-這使VMware工作站在用於測試客戶端-伺服器環境時特別有用。
VMware公司新的企業級伺服器和工具產品正在使將舊的生產伺服器移植到虛擬機的做法開始流行,這種做法能幾乎不費力地將多箇舊式伺服器集裝到一個單個的新宿主計算機中。
問題
較早版本的VMware似乎不能運行較新版本的Linux (在運行於VMware 2.x時,2.4系列的核心好像有問題;2.6系列的核心會導致VMware 3.x報告保護錯誤)。不過VMware工作站現在已經升級到能支持那些較新的作業系統和核心的5.0版本。但是對最新的2.6.x版本的核心還是必須要打個補丁-即便使用的是VMware工作站5.0版。名字為 vmware-any-any-update9x 的該補丁可免費獲得(目前名字的最後部分是update93)。在Google里搜尋一下能得到許多下載地址。
另外,VMware工作站在用於將MAC地址用作唯一識別標記(UID)的環境中時,最好是(通常也是必須)為每個虛擬機手工配置MAC地址以保證每個MAC地址確實是唯一的。這類環境的一個例子是在網路交換機上啟用MAC安全機制(例如連線埠綁定)的情況,另一個例子是使用Altiris產品的環境(在配置為將MAC地址作為UID時)。該情況下,可以簡單地禁用除被橋接的所有網路/適配器,並編輯每個虛擬機的.vmx檔案,將其中"ethernet0.address"改為唯一的MAC地址、以及將"ethernet0.addresstype"改為"static"。同時請確保將"ethernet0.generatedaddress"項整個刪除。
參見
用戶模式的Linux
Xen
虛擬機比較
Virtual PC
QEMU
外部連結