Exokernel,一種作業系統核心架構,是一種極簡化的核心,也被稱為外核心(Exokernel),外核、或極限核心

外核心的圖形概述

在Exokernel中,運作在核心空間的唯一行程就是核心,唯一工作就是負責分配系統資源,並防止使用者行程存取到其他行程的資源。每個使用者行程都擁有一個虛擬機器,可以執行自己的作業系統。

Exokernel的設計理念是盡可能的減少軟體的抽象化,這使得開發者可以專注於硬體的抽象化。外核心的設計極為簡化,它的目標是在於同時簡化傳統微核心的訊息傳遞機制,以及單核心的軟體抽象層。

歷史 編輯

Exokernel是在1994年提出的概念,由麻省理工學院並列與分散式作業系統小組(Parallel and Distributed Operating Systems Group)所發展出。

現在,外核設計還停留在研究階段,沒有任何一個作業系統採用了這種設計。幾種概念上的作業系統正在被開發,如劍橋大學的Nemesis,格拉斯哥大學的Citrix系統和瑞士電腦科學院的一套系統。麻省理工學院也在進行著這類研究。

外核心有一個應用叫OSv頁面存檔備份,存於網際網路檔案館),是一個unikernel。

技術內容 編輯

它的設計理念是讓使用者程式的設計者來決定硬體介面的設計。外核心本身非常的小,它通常只負責系統保護和系統資源復用相關的服務。

傳統的核心設計(包括單核和微核)都對硬體作了抽象,把硬體資源或裝置驅動程式都隱藏在硬體抽象層下。比方說,在這些系統中,如果分配一段物理儲存,應用程式並不知道它的實際位置。

而外核的目標就是讓應用程式直接請求一塊特定的物理空間,一塊特定的磁碟塊等等。系統本身只保證被請求的資源當前是空閒的,應用程式就允許直接存取它。既然外核系統只提供了比較低階的硬體操作,而沒有像其他系統一樣提供進階的硬體抽象,那麼就需要增加額外的執行庫支援。這些執行庫執行在外核之上,給使用者程式提供了完整的功能。

理論上,這種設計可以讓各種作業系統執行在一個外核之上,如Windows和Unix。並且設計人員可以根據執行效率調整系統的各部分功能。

參見 編輯

外部連結 編輯