什麼是核心
核心是作業系統的最核心最重要的模組,是作業系統首先載入到記憶體的部分,在保證儘可能小的記憶體使用的同時要儘可能多的為作業系統的應用程式以及其他部分提供基本的服務,核心程式碼通常是被載入到記憶體的保護區域,從而防止應用直接訪問核心的記憶體區域,起到應用和核心隔離的作用,保證了作業系統的可靠穩定。
嚴格地說,核心並不是計算機作業系統中必要的組成部分,但是為了抽象出統一的硬體操作介面,幾乎每個作業系統都會有一個核心,比如Linux核心就被廣泛的使用在Linux,FreeBSD,Android等作業系統上。
核心負責哪些內容
核心是連線硬體和應用的橋樑。通常來說,核心負責的內容包括:
兩個主要核心架構
1 宏核心架構(Monolithic Kernel)
在此類核心架構的早期階段,所有基本的系統服務(如程序和記憶體管理,中斷處理等)都打包到核心空間中的單個模組中。這種型別的體系結構存在一些嚴重的缺點,例如:核心的大小非常大;可維護性很差;修復一個錯誤或新增某個新功能可能導致重新編譯整個核心,耗費數小時。
在現代的宏核心架構中,核心由可以動態載入和解除安裝的不同模組組成。這種模組化方法可以輕鬆擴充套件作業系統的功能。核心的可維護性變得非常容易,因為每當特定模組中發生更改或錯誤修復後,只需要載入和解除安裝相關的模組。沒有必要重新編譯整個核心。此外,這種動態載入模組的方式為各種平臺(例如嵌入式裝置等)裁剪核心變得非常容易,因為我們可以輕鬆解除安裝我們不想要的模組。我們熟知的Linux核心就是宏核心。
2 微核心架構(Micro Kernel)
這種核心架構主要為了解決不斷增長的核心程式碼大小的問題,因為在宏核心中不能很有效的進行控制。微核心架構允許在使用者空間執行裝置驅動程式,協議棧,檔案系統等基本服務。這減少了核心程式碼的大小,並且還提高了作業系統的安全性和穩定性,因為我們只在核心中執行最少的程式碼。假如網路服務等基本服務因緩衝區溢位而崩潰,那麼只有網路服務的記憶體會被破壞,系統的其餘部分仍然可以執行。
在微核心架構中,作業系統所有基礎的服務都作為戶空間的一部分,系統中的其他程式透過程序間通訊(IPC)使用這些服務。例如:有用於裝置管理的驅動,網路協議棧,檔案系統,圖形管理等服務。微核心服務本質上是一些守護程序,除了核心授予它們中的一些特權來與物理記憶體的某些部分進行互動,否則大多數程式都不能與這些部分進行互動。授予特權的服務(尤其是裝置驅動服務)可以直接與硬體互動。
那麼,微核心架構在核心空間中推薦的最低限度是什麼,或者說最基本的微核心需要包括什麼?
記憶體保護
程序排程
程序間通訊(IPC)
除此之外,所有其他基本服務都可以成為使用者空間的一部分,並且可以以服務的形式執行。
總結,不管是微核心還是宏核心,核心的主要就是在硬體或底層介面和應用程式之間起到橋樑的作用,隔離使用者空間和核心空間。保證了作業系統的穩定性。
什麼是核心
核心是作業系統的最核心最重要的模組,是作業系統首先載入到記憶體的部分,在保證儘可能小的記憶體使用的同時要儘可能多的為作業系統的應用程式以及其他部分提供基本的服務,核心程式碼通常是被載入到記憶體的保護區域,從而防止應用直接訪問核心的記憶體區域,起到應用和核心隔離的作用,保證了作業系統的可靠穩定。
嚴格地說,核心並不是計算機作業系統中必要的組成部分,但是為了抽象出統一的硬體操作介面,幾乎每個作業系統都會有一個核心,比如Linux核心就被廣泛的使用在Linux,FreeBSD,Android等作業系統上。
核心負責哪些內容
核心是連線硬體和應用的橋樑。通常來說,核心負責的內容包括:
記憶體管理程序和任務管理裝置管理IO通訊中斷處理檔案系統等等兩個主要核心架構
1 宏核心架構(Monolithic Kernel)
在此類核心架構的早期階段,所有基本的系統服務(如程序和記憶體管理,中斷處理等)都打包到核心空間中的單個模組中。這種型別的體系結構存在一些嚴重的缺點,例如:核心的大小非常大;可維護性很差;修復一個錯誤或新增某個新功能可能導致重新編譯整個核心,耗費數小時。
在現代的宏核心架構中,核心由可以動態載入和解除安裝的不同模組組成。這種模組化方法可以輕鬆擴充套件作業系統的功能。核心的可維護性變得非常容易,因為每當特定模組中發生更改或錯誤修復後,只需要載入和解除安裝相關的模組。沒有必要重新編譯整個核心。此外,這種動態載入模組的方式為各種平臺(例如嵌入式裝置等)裁剪核心變得非常容易,因為我們可以輕鬆解除安裝我們不想要的模組。我們熟知的Linux核心就是宏核心。
2 微核心架構(Micro Kernel)
這種核心架構主要為了解決不斷增長的核心程式碼大小的問題,因為在宏核心中不能很有效的進行控制。微核心架構允許在使用者空間執行裝置驅動程式,協議棧,檔案系統等基本服務。這減少了核心程式碼的大小,並且還提高了作業系統的安全性和穩定性,因為我們只在核心中執行最少的程式碼。假如網路服務等基本服務因緩衝區溢位而崩潰,那麼只有網路服務的記憶體會被破壞,系統的其餘部分仍然可以執行。
在微核心架構中,作業系統所有基礎的服務都作為戶空間的一部分,系統中的其他程式透過程序間通訊(IPC)使用這些服務。例如:有用於裝置管理的驅動,網路協議棧,檔案系統,圖形管理等服務。微核心服務本質上是一些守護程序,除了核心授予它們中的一些特權來與物理記憶體的某些部分進行互動,否則大多數程式都不能與這些部分進行互動。授予特權的服務(尤其是裝置驅動服務)可以直接與硬體互動。
那麼,微核心架構在核心空間中推薦的最低限度是什麼,或者說最基本的微核心需要包括什麼?
記憶體保護
程序排程
程序間通訊(IPC)
除此之外,所有其他基本服務都可以成為使用者空間的一部分,並且可以以服務的形式執行。
總結,不管是微核心還是宏核心,核心的主要就是在硬體或底層介面和應用程式之間起到橋樑的作用,隔離使用者空間和核心空間。保證了作業系統的穩定性。