相關工作 虛擬化技術被應用在商業化和研究型操作系統上已經有近
年了
IBM VM/
[
]最先使用了虛擬化技術以提供對先前存留的代碼的支持
VMware[
]和Connectix[
]采用了將常用的PC硬件進行虛擬化的方法
允許多個操作系統在同一台主機上運行
所有這些例子都對底層硬件(至少是底層硬件的一個子集)進行了完全虛擬化的實現
而並非是准虛擬化的方法提供給guest OS一個修改後的接口
正如我們的評估結果中給出的
完全虛擬化雖然能夠更容易地支持商業市售的操作系統
但是卻大大降低了性能
VMM方法還被Disco用於將常用的操作系統高效地運行在ccNUMA機器上[
]
其間要對被操控的操作系統做少量的改動
以使其能夠虛擬化地運行在MIPS體系結構上
另外
出於性能的考慮
還要做一些其它修改
現在
我們知道有兩個其它的系統也采用了准虛擬化的方法
IBM不久前提出的Linux的准虛擬化版本允許大量的Linux實例同時運行
將用於他們的zSeries大型機上
Denali[
]在之前已經討論過
它是一個暫時隔離的內核
試圖提供能夠操控大量虛擬操作系統實例的系統能力
除了Denali
我們還知道有兩種其它的方法使用了低層虛擬化技術建立分布式系統的底層架構
vMatrix[
]是基於VMware的
它的目標是建立一個用於在不同機器間移動代碼的平台
由於vMatrix是在VMware之上開發的
因此它更關注的是虛擬化技術在分布式環境中存在的高層問題
另外
在IBM提出的
托管管理(Managed Hosting)
服務中
虛擬Linux的實例可以在IBM大型機上被租用(//大型機上跑多個Linux實例
你可以租一個用
搭建你自己的系統
和其他租戶共享大型機的資源)
PlanetLab項目[
]構建了一個分布式的底層架構
它的設計目的是作為實驗床用於研究和開發地理空間分布的網絡服務
平台的對象是研究者
試圖將單個的物理主機劃分為條(sliver)
提供同時的對用戶的低層訪問
項目當前使用的是VServers[
]和SILK[
]來管理操作系統內部的共享
我們再和操作系統外延研究和主動網絡通信研究中的一些思路作比較
當代碼在Xen上面運行的時候沒有必要檢查其
安全性
也沒有必要去檢查代碼運行是否能夠保證終止
因為在這些情況中唯一的受害人是那些可疑的客戶
於是Xen提供了更通用的方案
這個方案不需要由一個可信的編譯器為被操控的代碼做數字簽名(比如SPIN[
])
不需要這些代碼被一個安全證明伴隨(比如PCC[
])
不需要由一種特殊的語言寫成(比如SafetyNet[
]或者其它基於Java的系統)
也不需要依賴於特殊的中間件(比如移動代理(mobile
agent)系統)
當然
這些其它的技術能夠繼續在運行在Xen上的guest OS中使用
而且可能會對那些時限更短暫的任務負載有著特別的用途
因為這類任務沒有機會被成批處理以減少啟動一個新的domain的代價
(//這段的意思
我的感覺是在操作系統外延研究和主動網絡通信研究為了保證代碼安全
采用了多種多樣的方法
但是在Xen中
這些方法都是不必要的
因為Xen的安全性確認策略比較簡單
前文有提及
但是這些方法在Xen中也還是有它們的作用
比如對於時限短暫的任務
它等不及成批地被確認
那麼它就需要用其它方法保證安全性
)
關於語言級虛擬機(//比如Java虛擬機)方法中也存在著類似的問題
一個管理資源(resource
managed)的JVM[
]肯定能夠操控不可信的應用
前提是這些應用必須被編譯為Java字節碼並且遵循特別的系統安全模型(//不可信的代碼
即使出了問題
但是由於其遵循系統安全模型
所以也不會造成危害)
這樣的話
Xen就能夠容易地支持語言級虛擬機
就像支持其它運行在guest
OS上的應用一樣
(//這段的意思
和前面類似
仍舊是表明Xen並不提供過多的安全性檢查
如果要跑語言虛擬機之類的應用
語言的安全性要由虛擬機應用本身保證
而不關系到Xen
)
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19535.html