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