詳細概括操作系統中linux虛擬化技術
經過長時間學習linux虛擬化技術,并且積累了些材料,于是和大家分享一下,看完本文你將會有不少收獲。
linux虛擬化的含義豐富,應用廣泛。目前linux虛擬化技術主要關注于服務器虛擬化,即在一個宿主計算機上提供多個獨立操作系統。本文將探索linux虛擬化背后的思想,然后討論實現虛擬化的一些技術。我們還將了解現有的其他一些虛擬化技術,例如 Linux 上操作系統的虛擬化。
進行虛擬化 就是要將某種形式的東西以另外一種形式呈現出來。對計算機進行虛擬化就是要將計算機以多臺計算機或一臺完全不同的計算機的形式呈現出來。
虛擬化也可以將多臺計算機組合成一臺計算機的形式呈現出來。這通常稱為服務器聚合或網格計算。
下面讓我們首先來看一下虛擬化的起源。
虛擬化的歷史
虛擬化并不是什么新主題;實際上,它的存在已經超過 40 年了。虛擬化技術最早的一些用法包括 IBM® 7044、麻省理工學院(MIT)在 IBM 704 上開發的 CTSS(Compatible Time Sharing System)以及曼徹斯特大學的 Atlas 項目(世界上最早的超級計算機之一),這些都是請求頁面調度和監管進程調用的先驅。
硬件虛擬化
IBM 早在 20 世紀 60 年代開發 System/360™ Model 67 大型機時就認識到了linux虛擬化的重要性。Model 67 通過 VMM(Virtual Machine Monitor)對所有的硬件接口都進行了虛擬化。在早期計算中,操作系統被稱為 supervisor。能夠在其他操作系統上運行的操作系統被稱為 hypervisor(這個術語是在 20 世紀 70 年代出現的)。
VMM 可以直接在底層硬件上運行,允許運行多個虛擬機(VM)。每個 VM 都可以運行一個自己私有操作系統的實例 —— 在早些時候,這稱為 CMS(或 Conversational Monitor System)。之后 VM 繼續發展,現在您可以在 System z9™ 大型機上發現 VM。這提供了很好的向后兼容性,甚至是對 System/360 產品線的兼容性。
處理器linux虛擬化:
linux虛擬化技術早期的另外一種用法(在本例中是對處理器的仿真)是 P-code(或偽碼)機。P-code 是一種機器語言,運行于虛擬機而不是實際硬件。P-code 早在 20 世紀 70 年代就已在加州大學圣地亞哥分校(UCSD)Pascal 系統上頗有名氣了,它將 Pascal 程序編譯成 P-code,然后在一個 P-code 虛擬機上運行。這就使 P-code 程序具有了高度的可移植性,而且,只要有可用的 P-code 虛擬機,P-code 程序就可以運行。
。。。。。。
【編輯推薦】