Exokernel
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Exokernel.svg/289px-Exokernel.svg.png)
Exokernel,一種作業系統核心架構,是一種極簡化的核心,也被稱為外核心(Exokernel),外核、或極限核心。
在Exokernel中,運作在核心空間的唯一行程就是核心,唯一工作就是負責分配系統資源,並防止使用者行程存取到其他行程的資源。每個使用者行程都擁有一個虛擬機器,可以執行自己的作業系統。
Exokernel的設計理念是盡可能的減少軟體的抽象化,這使得開發者可以專注於硬體的抽象化。外核心的設計極為簡化,它的目標是在於同時簡化傳統微核心的訊息傳遞機制,以及單核心的軟體抽象層。
歷史
[編輯]Exokernel是在1994年提出的概念,由麻省理工學院並列與分散式作業系統小組(Parallel and Distributed Operating Systems Group)所發展出。
現在,外核設計還停留在研究階段,沒有任何一個作業系統採用了這種設計。幾種概念上的作業系統正在被開發,如劍橋大學的Nemesis,格拉斯哥大學的Citrix系統和瑞士電腦科學院的一套系統。麻省理工學院也在進行著這類研究。
外核心有一個應用叫OSv (頁面存檔備份,存於網際網路檔案館),是一個unikernel。
技術內容
[編輯]它的設計理念是讓使用者程式的設計者來決定硬體介面的設計。外核心本身非常的小,它通常只負責系統保護和系統資源復用相關的服務。
傳統的核心設計(包括單核和微核)都對硬體作了抽象,把硬體資源或裝置驅動程式都隱藏在硬體抽象層下。比方說,在這些系統中,如果分配一段物理儲存,應用程式並不知道它的實際位置。
而外核的目標就是讓應用程式直接請求一塊特定的物理空間,一塊特定的磁碟塊等等。系統本身只保證被請求的資源當前是空閒的,應用程式就允許直接存取它。既然外核系統只提供了比較低階的硬體操作,而沒有像其他系統一樣提供進階的硬體抽象,那麼就需要增加額外的執行庫支援。這些執行庫執行在外核之上,給使用者程式提供了完整的功能。
理論上,這種設計可以讓各種作業系統執行在一個外核之上,如Windows和Unix。並且設計人員可以根據執行效率調整系統的各部分功能。
參見
[編輯]外部連結
[編輯]
|