安 虹 張 昱 吳俊敏
進入21世紀,工藝技術的進步和計算機應用的變化推動了計算機體系結構的迅猛發展,賦予了計算機體系結構新的含義?,F代計算機系統的硬件結構正在朝著片上多核、系統多級并行處理的方向發展,并且通過Internet網絡互聯起來,構成功能更強大、應用更廣泛的系統。在系統的物理資源大大增加的同時,系統的物理實現也變得極為復雜,系統的可擴展性、可靠性、可用性、可管理性和安全性等方面都遇到了前所未有的、難以用單點的體系結構技術來解決的一系列問題。1992年布特勒?蘭普遜(Butler Lampson)在他獲得圖靈獎時發表的演說中引用了大衛?韋勒(David Wheeler)的名言:“計算機科學中的任何問題都可以通過增加一個中間層來解決”,闡明了用虛擬化技術來解決這一系列問題的大方向,揭示了虛擬機技術發展動因的歷史必然。
《虛擬機:系統與進程的通用平臺》一書的作者James E. Smith& Ravi Nair敏銳地觀察到了現代計算機體系結構發展趨勢的這一重大變化,從計算機體系結構研究者的角度,以計算機系統接口抽象層次中兩個最重要的接口——應用的二進制接口(Application Binary Interface, ABI)和應用程序接口(Application Program Interface, API)為邊界,將計算機系統資源的各種虛擬化技術劃分為進程虛擬機和系統虛擬機兩大類展開討論,清晰地展現了虛擬化技術各種方法的各個層面和各類應用。
教材結構:
第1章首先引入了計算機系統接口的抽象定義,討論了虛擬化與各層接口的關系。然后從計算機體系結構的概念出發,對各種不同類型的虛擬機進行了分類總結,將虛擬機分為兩個主要類型:進程虛擬機和系統虛擬機。
第2章至第6章側重討論進程虛擬機。第2章討論在目標指令集體系結構(Instruction Set Architecture, ISA)上仿真源指令集體系結構的相關問題,并以一種CISC源指令集Intel IA-32、一種RISC目標指令集IBM PowerPC為例來說明;然后以Shade系統為例介紹了二進制翻譯技術。第3章討論進程虛擬機的實現問題,包括指令集的仿真和主機操作系統接口的仿真,最后介紹實例FX!32系統。第4章討論通過代碼優化獲得更好的仿真性能的技術,包括各種程序剖析技術,此外還討論了代碼重排序技術,最后介紹了Dynamo動態二進制代碼優化器。第5章介紹高級語言虛擬機的體系結構,特別是它們支持面向對象編程和安全的特征,這一章介紹了當今兩個重要的面向對象虛擬機——Java虛擬機和微軟的CLI。第6章進一步討論高級語言虛擬機的實現問題,并以Jikes RVM作為實例研究說明本章的概念。
第7章至第9章側重討論系統虛擬機。第7章介紹協同設計虛擬機,并以Transmeta Crusoe處理器和IBMAS/400處理器的實例研究結束本章。第8章涉及經典的系統虛擬機及其實現方法,包括本地虛擬機和宿主虛擬機。此外還討論對計算機系統三個主要資源:處理器、存儲器、I/O的虛擬化技術,以及如何用硬件來提高虛擬機的性能。本章給出的研究實例包括:VMware和Intel VT-x(Vanderpool)。第9章討論多處理器系統的虛擬化問題,包括對不同指令集的客戶和主機平臺多處理器系統的虛擬化。
第10章介紹了虛擬機技術新興的應用領域,重點介紹了在安全領域(討論入侵檢測系統的原理以及虛擬機在系統攻防方面的應用潛力)、移動計算環境(討論了商業上的應用:VMware的VMotion)、以及計算網格(展示典型的系統虛擬機對新興網格系統出現的重要作用)方面的應用。
附錄為本書的主要章節提供了計算機系統結構的背景資料,討論了處理器、存儲器、I/O在計算機系統中的作用。
虛擬機未來應用的廣泛性意味著本書適合各種各樣的讀者,包括從事計算機系統結構、語言和編譯、操作系統、應用軟件等各個領域的教學和研發人員。本書的寫作具有如下特點:(1)結構清晰。本書從計算機體系結構研究者的角度,以計算機系統接口抽象層次中兩個最重要的接口——應用的二進制接口和應用程序接口為邊界,將計算機系統資源的各種虛擬化技術劃分為進程虛擬機和系統虛擬機兩大類展開討論,清晰地展現了虛擬化技術各種方法的各個層面和各類應用。(2)全面系統。作者從學術和工業應用兩個方面對虛擬機技術幾十年的研究和發展歷史進行了綜述,從體系結構、程序設計語言和編譯,操作系統、系統安全等多個專業領域深入探討了虛擬機技術的應用。(3)理實交融。本書提供了大量實際虛擬機系統的原理說明及詳實的參考文獻,包括Shade模擬系統、FX!32系統、Dynamo/RIO、Java和CLI等流行語言虛擬機、Jikes RVM、Transmeta Crusoe處理器、IBM的AS/400和z/VM系統、VMware的主機虛擬機、Intel的VT-x虛擬技術,以及多處理器虛擬系統——Cellular Disco。微軟、惠普及其他工業研究團體的本領域研究人員對全書進行了審閱。(4)面向未來。本書除在各章節討論了虛擬機技術的各種應用以外,還在最后一章專門討論了一些新興的虛擬機應用,包括安全領域(討論入侵檢測系統的原理以及虛擬機在系統攻防方面的應用潛力)、移動計算環境(討論了兩個商業上的應用:VMware的Vmotion)、以及計算網格(展示典型的系統虛擬機對新興網格系統出現的重要作用)方面的應用。
本書涉及的知識面較寬,包括計算機體系結構、編譯和操作系統、應用開發環境等許多方面;觀點較新,提出了許多全新的概念和方法。因此,譯文難免存在錯誤和不足,希望與感興趣的老師共同交流和探討。