內核是操作系統(tǒng)的最核心最重要的模塊,是操作系統(tǒng)首先加載到內存的部分,在保證盡可能小的內存使用的同時要盡可能多的為操作系統(tǒng)的應用程序以及其他部分提供基本的服務,內核代碼通常是被加載到內存的保護區(qū)域,從而防止應用直接訪問內核的內存區(qū)域,起到應用和內核隔離的作用,保證了操作系統(tǒng)的可靠穩(wěn)定。 嚴格地說,內核并不是計算機操作系統(tǒng)中必要的組成部分,但是為了抽象出統(tǒng)一的硬件操作接口,幾乎每個操作系統(tǒng)都會有一個內核,比如Linux內核就被廣泛的使用在Linux,F(xiàn)reeBSD,Android等操作系統(tǒng)上。 內核負責哪些內容 內核是連接硬件和應用的橋梁。通常來說,內核負責的內容包括:
兩個主要內核架構 1 宏內核架構(Monolithic Kernel) 在此類內核架構的早期階段,所有基本的系統(tǒng)服務(如進程和內存管理,中斷處理等)都打包到內核空間中的單個模塊中。這種類型的體系結構存在一些嚴重的缺點,例如:內核的大小非常大;可維護性很差;修復一個錯誤或添加某個新功能可能導致重新編譯整個內核,耗費數(shù)小時。 在現(xiàn)代的宏內核架構中,內核由可以動態(tài)加載和卸載的不同模塊組成。這種模塊化方法可以輕松擴展操作系統(tǒng)的功能。內核的可維護性變得非常容易,因為每當特定模塊中發(fā)生更改或錯誤修復后,只需要加載和卸載相關的模塊。沒有必要重新編譯整個內核。此外,這種動態(tài)加載模塊的方式為各種平臺(例如嵌入式設備等)裁剪內核變得非常容易,因為我們可以輕松卸載我們不想要的模塊。我們熟知的Linux內核就是宏內核。 2 微內核架構(Micro Kernel) 這種內核架構主要為了解決不斷增長的內核代碼大小的問題,因為在宏內核中不能很有效的進行控制。微內核架構允許在用戶空間運行設備驅動程序,協(xié)議棧,文件系統(tǒng)等基本服務。這減少了內核代碼的大小,并且還提高了操作系統(tǒng)的安全性和穩(wěn)定性,因為我們只在內核中運行最少的代碼。假如網絡服務等基本服務因緩沖區(qū)溢出而崩潰,那么只有網絡服務的內存會被破壞,系統(tǒng)的其余部分仍然可以運行。 在微內核架構中,操作系統(tǒng)所有基礎的服務都作為戶空間的一部分,系統(tǒng)中的其他程序通過進程間通信(IPC)使用這些服務。例如:有用于設備管理的驅動,網絡協(xié)議棧,文件系統(tǒng),圖形管理等服務。微內核服務本質上是一些守護進程,除了內核授予它們中的一些特權來與物理內存的某些部分進行交互,否則大多數(shù)程序都不能與這些部分進行交互。授予特權的服務(尤其是設備驅動服務)可以直接與硬件交互。 那么,微內核架構在內核空間中推薦的最低限度是什么,或者說最基本的微內核需要包括什么?
除此之外,所有其他基本服務都可以成為用戶空間的一部分,并且可以以服務的形式運行。 總結,不管是微內核還是宏內核,內核的主要就是在硬件或底層接口和應用程序之間起到橋梁的作用,隔離用戶空間和內核空間。保證了操作系統(tǒng)的穩(wěn)定性。 |
|
來自: 挑燈看劍r7wtm5 > 《手機與電腦》