官术网_书友最值得收藏!

1.1 虛擬化技術的發展歷史

計算機的運行通常都離不開合適的操作系統,而傳統的操作系統都必須運行在一個具有特定的指令集(實現它的處理器)、內存系統和I/O系統的物理計算機上。隨著計算機技術的飛速發展,計算機的系統架構、操作系統以及應用程序都變得越來越復雜,比如安裝了Linux的計算機無法直接運行Windows的應用程序,同樣安裝了Windows的計算機也無法直接運行Linux的應用程序,更不用說在Linux上安裝Windows和在Windows上安裝Linux了。另外,傳統操作系統上由于應用程序之間無法真正相互隔離,因此一個應用程序的錯誤可能導致整個系統的崩潰。這些都推動了90年代末期開始的新一輪虛擬計算機(Virtual Machine)技術的發展。一些基于x86架構的商用虛擬機產品的推出,如VMware Workstation、Virtual PC等,使得虛擬計算機技術的發展到了一個新的階段。

進入21世紀后,計算機領域出現了兩大新的虛擬化應用場景,即云計算和萬物互聯,進一步極大促進了虛擬化技術的發展和應用落地。云計算技術的發展,使得作為標準化產品的虛擬機作為服務成為各家IT企業的選擇,大大降低了企業自建服務器的IT服務成本和投入,成為千千萬萬大中小型公司的IT服務的首選。萬物互聯更是把100億數量級的嵌入式設備整合在一起,并通過云連接起來。虛擬化技術也因此在嵌入式領域得到廣泛的應用,以此整合各種單一功能設備,通過共同的網絡接口接入互聯網,構建更加高效、低成本的萬物互聯系統。

虛擬計算機由IBM公司在20世紀六七十年代提出并運用于VM/370系統,以共享昂貴的Main Frame系統。如圖1-1a所示,虛擬化技術通過在現有平臺(機器)上添加一層虛擬機監控器(Virtual Machine Monitor,VMM)軟件實現對系統的虛擬化,如虛擬處理器、虛擬內存管理器(MMU)和虛擬I/O系統等。虛擬機監控器也被稱作超級管理者(Hypervisor),Hypervisor逐漸取代VMM成為主流叫法(在本書中,Hypervisor和VMM這兩種說法并存,兩者含義相同),對應操作系統中的(普通)管理者(Supervisor),但是Hypervisor比Supervisor權力更大、更加基礎。從應用程序的角度看,程序運行在虛擬機上與運行在其對應的實體計算機上一樣,都運行在某一特定的指令體系(Instruction Set Architecture,ISA)和/或操作系統上,如圖1-1b所示。

圖1-1 Hypervisor將一個物理的ISA轉化成一個虛擬機

根據應用程序、操作系統和硬件平臺之間的關系與Hypervisor向客戶機(Guest)抽象的層次不同,威斯康星大學麥迪遜分校電子與計算機工程系的James E. Smith教授和IBM公司的Ravi Nair將基于圖1-2a所示指令體系接口抽象的虛擬機稱為系統虛擬機(System VM),而將基于圖1-2b所示應用程序二進制接口(Application Binary Interface,ABI)抽象的虛擬機稱為進程虛擬機(Process VM)。Smith和Nair認為從本質上說,現代OS所具有的多進程(Multiprogramming)機制提供給用戶的獨立進程就已經是一個完整的虛擬機(進程虛擬機)[1]。進程虛擬機的發展隨著現代OS的發展而發展已經相當成熟,而系統虛擬機技術則直到20世紀90年代才開始迅猛發展。

圖1-2 不同層面的抽象

主站蜘蛛池模板: 葫芦岛市| 仁化县| 乐都县| 沁水县| 游戏| 神农架林区| 北海市| 延寿县| 南投县| 夏邑县| 岳西县| 宾川县| 高唐县| 读书| 大关县| 遂溪县| 邓州市| 云林县| 天台县| 北票市| 深圳市| 青河县| 泰来县| 通辽市| 报价| 高雄市| 菏泽市| 元江| 高唐县| 洛隆县| 保山市| 南阳市| 曲沃县| 佛坪县| 基隆市| 临城县| 太白县| 灵寿县| 西贡区| 濮阳市| 任丘市|