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