【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )
文章目錄
- 一、操作系統(tǒng)需要滿足的要素
- 二、宏內(nèi)核
- 三、微內(nèi)核
- 四、Linux 內(nèi)核動態(tài)加載機制
一、操作系統(tǒng)需要滿足的要素
電腦上運行的 操作系統(tǒng) , 是一個 軟件 ;
-
設(shè)備管理 : 操作系統(tǒng)需要 為 用戶 和 應(yīng)用程序 管理并分配電腦的 硬件資源 , 如 CPU , 磁盤 , 內(nèi)存 , 網(wǎng)絡(luò) 等 ;
-
開發(fā)環(huán)境 : 操作系統(tǒng) 要為 應(yīng)用程序 開發(fā) 提供配套環(huán)境 ;
-
執(zhí)行環(huán)境 : 操作系統(tǒng) 要為 應(yīng)用程序 執(zhí)行 提供配套環(huán)境 ;
-
虛擬性支持 : 支持多進程 , 每個運行的應(yīng)用程序進程 , 都可以感覺到有專門的處理器提供系統(tǒng)服務(wù) ;
-
并發(fā)性支持 : 操作系統(tǒng)需要有 執(zhí)行多個線程的能力 , 線程是獨立運行 , 獨立調(diào)度的最基本單位 ;
二、宏內(nèi)核
宏內(nèi)核 :
內(nèi)核代碼 編譯成 二進制文件 ,
內(nèi)核 運行在 一個 大內(nèi)核 地址空間 中 ,
可以 直接 訪問 , 調(diào)用 內(nèi)核代碼 ,
這種內(nèi)核優(yōu)點是 效率高 , 性能強 ;
下圖中 , 最上層是 " 系統(tǒng)調(diào)用 " , 中間是 " 宏內(nèi)核 " , 最下方是 硬件層 ;
宏內(nèi)核優(yōu)點 : 設(shè)計簡單 , 性能高 ;
三、微內(nèi)核
微內(nèi)核 :
將 操作系統(tǒng) 拆分成 多個 獨立功能模塊 ,
這些 獨立功能模塊 之間通過 " 消息 " 進行通信 ,
微內(nèi)核 效率低 ;
下圖中 , 進程 , 文件系統(tǒng) , 設(shè)備驅(qū)動 , 與 微內(nèi)核 中的 通信模塊 , 進程調(diào)度模塊 , 內(nèi)存管理模塊 , 通過 消息 進行通信 ,
微內(nèi)核優(yōu)點 : 穩(wěn)定性好 , 實時性好 ;
微內(nèi)核缺點 : 高度模塊化 , 模塊之間只能通過消息傳遞信息 , 效率低 ;
四、Linux 內(nèi)核動態(tài)加載機制
Linux 內(nèi)核模塊動態(tài)加載 :
Linux 內(nèi)核 使用了 模塊設(shè)計 , 可以進行 動態(tài)加載 內(nèi)核模塊 ;
Linux 內(nèi)核的 核心實現(xiàn) , 設(shè)備驅(qū)動實現(xiàn) ,
可以 編譯成一個獨立模塊 ,
這些獨立模塊可以被編譯成 獨立的目標(biāo)文件 ,
可以在運行時 , 動態(tài) 加載 / 卸載 內(nèi)核模塊 ;
開發(fā)簡單 : Linux 內(nèi)核模塊引入 , 帶來了很多便利 ,
很多內(nèi)核驅(qū)動 , 都可以 編譯成動態(tài) 加載 / 卸載 的模塊 ,
驅(qū)動開發(fā)時 , 必須 遵守規(guī)定的接口 , 來訪問內(nèi)核 ,
這樣 開發(fā)內(nèi)核模塊 , 變得 更加容易 , 方便 ;
與平臺無關(guān) : 內(nèi)核模塊 可以 設(shè)計成 與 平臺無關(guān)的 模塊 , 如 : 文件系統(tǒng) ;
總結(jié)
以上是生活随笔為你收集整理的【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ijkplayer】编译 Androi
- 下一篇: 【Android WebSocket】A