Loadable Kernel Module (LKM)
Background
Monolithic kernel 要新增功能就必續重新編譯整個 kernel,LKM 便是為了解決此問題
Core Concept
LKM 讓某些 kernel 功能編譯成 .ko 檔案,需要時才動態載入 kernel,不需要時直接卸載而不需要重新編譯
Characteristic
- 每個模組都有清楚 Interface,隱藏內部細節,易於使用
- 每個模組可以獨立開發、編譯、載入
- 模組間不可任意呼叫,需透過 kernel 定義的 Interface 溝通
- 用到時才載入
LKM 和 kernel 共用一個 Address Space 而不會有獨立的 Address Space