作業系統核心

作業系統核心

作業系統核心是指大多數作業系統的核心部分。它由作業系統中用於管理存儲器、檔案、外設和系統資源的那些部分組成。作業系統核心通常運行進程,並提供進程間的通信。

核心的分類可分為單核心和雙核心以及微核心。嚴格地說,核心並不是計算機系統中必要的組成部分。

基本介紹

  • 中文名:作業系統核心
  • 外文名:Operating System
  • 含義:一個作業系統的核心
  • 負責:管理系統的進程、記憶體
作業系統,核心,核心分類,單核心,微核心,混合核心,外核心,

作業系統

作業系統(英語:Operating System,簡稱OS)是管理計算機硬體軟體資源的程式,同時也是計算機系統的核心與基石。作業系統身負諸如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出設備、操作網路與管理檔案系統等基本事務。作業系統也提供一個讓用戶與系統互動的操作接口。 作業系統的形態非常多樣,不同機器安裝的作業系統可從簡單到複雜,可從手機嵌入式系統超級計算機的大型作業系統。許多作業系統製造者對它涵蓋範疇的定義也不盡一致,例如有些作業系統集成了圖形用戶界面,而有些僅使用文字接口,而將圖形接口視為一種非必要的套用程式
作業系統理論在計算機科學中,為歷史悠久而又活躍的分支;而作業系統的設計與實現則是軟體工業的基礎與核心。

核心

核心,是一個作業系統的核心。它負責管理系統的進程、記憶體、設備驅動程式、檔案和網路系統,決定著系統的性能和穩定性。
“核心”指的是一個提供硬體抽象層、磁碟及檔案系統控制、多任務等功能的系統軟體。一個核心不是一套完整的作業系統。一套基於Linux核心的完整作業系統叫作Linux作業系統,或是GNU/Linux。
核心是作業系統最基本的部分。它是為眾多套用程式提供對計算機硬體的安全訪問的一部分軟體,這種訪問是有限的,並且核心決定一個程式在什麼時候對某部分硬體操作多長時間。直接對硬體操作是非常複雜的,所以核心通常提供一種硬體抽象的方法來完成這些操作。硬體抽象隱藏了複雜性,為套用軟體和硬體提供了一套簡潔,統一的接口,使程式設計更為簡單。
嚴格地說,核心並不是計算機系統中必要的組成部分。程式可以直接地被調入計算機中執行,這樣的設計說明了設計者不希望提供任何硬體抽象和作業系統的支持,它常見於早期計算機系統的設計中。最終,一些輔助性程式,例如程式載入器和調試器,被設計到機器核心當中,或者固化在唯讀存儲器里。這些變化發生時,作業系統核心的概念就漸漸明晰起來了。

核心分類

單核心

單核心(Monolithic kernel),是個很大的進程。它的內部又能夠被分為若干模組(或是層次或其他)。但是在運行的時候,它是個單獨的二進制大映象。其模組間的通訊是通過直接調用其他模組中的函式實現的,而不是訊息傳遞。
單核心結構在硬體之上定義了一個高階的抽象界面,套用一組原語(或者叫系統調用)來實現作業系統的功能,例如進程管理,檔案系統,和存儲管理等等,這些功能由多個運行在核心態的模組來完成。
儘管每一個模組都是單獨地服務這些操作,核心代碼是高度集成的,而且難以編寫正確。因為所有的模組都在同一個核心空間上運行,一個很小的bug都會使整個系統崩潰。然而,如果開發順利,單核心結構就可以從運行效率上得到好處。
很多現代的單核心結構核心,如Linux和FreeBSD核心,能夠在運行時將模組調入執行,這就可以使擴充核心的功能變得更簡單,也可以使核心的核心部分變得更簡潔。
單核心結構是非常有吸引力的一種設計,由於在同一個地址空間上實現所有低級操作的系統控制代碼的複雜性的效率會比在不同地址空間上實現更高些。 單核結構正趨向於容易被正確設計,所以它的發展會比微核心結構更迅速些。
單核心結構的例子:傳統的UNIX核心----例如伯克利大學發行的版本,Linux核心。

微核心

微核心(Microkernelkernel)結構由一個非常簡單的硬體抽象層和一組比較關鍵的原語或系統調用組成,這些原語僅僅包括了建立一個系統必需的幾個部分,如執行緒管理,地址空間和進程間通信等。
微核的目標是將系統服務的實現和系統的基本操作規則分離開來。例如,進程的輸入/輸出鎖定服務可以由運行在微核之外的一個服務組件來提供。這些非常模組化的用戶態伺服器用於完成作業系統中比較高級的操作,這樣的設計使核心中最核心的部分的設計更簡單。一個服務組件的失效並不會導致整個系統的崩潰,核心需要做的,僅僅是重新啟動這個組件,而不必影響其它的部分
微核心將許多OS服務放入分離的進程,如檔案系統,設備驅動程式,而進程通過訊息傳遞調用OS服務。微核心結構必然是多執行緒的,第一代微核心,在核心提供了較多的服務,因此被稱為'胖微核心',它的典型代表是MACH。它既是GNU HURD也是APPLE SERVER OS的核心,可以說,蒸蒸日上.第二代為微核心只提供最基本的OS服務,典型的OS是QNX,QNX在理論界很有名,被認為是一種先進的OS。
微核心只提供了很小一部分的硬體抽象,大部分功能由一種特殊的用戶態程式:伺服器來完成。微核經常被用於機器人和醫療器械的嵌入式設計中,因為它的系統的關鍵部分都處在相互分開的,被保護的存儲空間中。這對於單核設計來說是不可能的,就算它採用了運行時載入模組的方式。
微核心的例子:AIX,BeOS,L4微核心系列,.Mach中用於GNU Hurd和Mac OS X,Minix,MorphOS,QNX,RadiOS,VSTa。

混合核心

混合核心它很像微核心結構,只不過它的的組件更多的在核心態中運行以獲得更快的執行速度。
混合核心實質上是微核心,只不過它讓一些微核結構運行在用戶空間的代碼運行在核心空間,這樣讓核心的運行效率更高些。這是一種妥協做法,設計者參考了微核心結構的系統運行速度不佳的理論。然而後來的實驗證明,純微核心的系統實際上也可以是高效率的。大多數現代作業系統遵循這種設計範疇,微軟公司開發的Windows作業系統就是一個很好的例子。另外還有XNU,運行在蘋果Mac OS X上的核心,也是一個混合核心。
混合核心的例子: BeOS 核心 ,DragonFly BSD,ReactOS 核心
Windows NT、Windows 2000、Windows XP、Windows Server 2003以及Windows Vista等基於NT技術的作業系統。

外核心

外核心系統,也被稱為縱向結構作業系統,是一種比較極端的設計方法。
外核心這種核心不提供任何硬體抽象操作,但是允許為核心增加額外的運行庫,通過這些運行庫應用程式可以直接地或者接近直接地對硬體進行操作。
它的設計理念是讓用戶程式的設計者來決定硬體接口的設計。外核心本身非常的小,它通常只負責系統保護和系統資源復用相關的服務。
傳統的核心設計(包括單核和微核)都對硬體作了抽象,把硬體資源或設備驅動程式都隱藏在硬體抽象層下。比方說,在這些系統中,如果分配一段物理存儲,應用程式並不知道它的實際位置。
而外核的目標就是讓應用程式直接請求一塊特定的物理空間,一塊特定的磁碟塊等等。系統本身只保證被請求的資源當前是空閒的,應用程式就允許直接存取它。既然外核系統只提供了比較低級的硬體操作,而沒有像其他系統一樣提供高級的硬體抽象,那么就需要增加額外的運行庫支持。這些運行庫運行在外核之上,給用戶程式提供了完整的功能。
理論上,這種設計可以讓各種作業系統運行在一個外核之上,如Windows和Unix。並且設計人員可以根據運行效率調整系統的各部分功能。

相關詞條

熱門詞條

聯絡我們