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