由於工作上的需求接觸到 Linux 系統模組的除錯,進而對 Linux 系統模組的運作產生興趣。藉此機會,想把自己在 Linux kernel module 上的心得與各位邦友分享。
我會從系統除錯的需要來為出發點,來看待Linux kernel,另一方面以 kernel module 程式設計來闡述其運作原理。題材部分,主要參考的是 "Peter Jay Salzman, Michael Burianand Ori Pomerantz / The Linux Kernel Module Programming Guide" 一書。
所謂 kernel module 就是有別於一般在使用者模式下執行的程式 (或稱為 process),從字面上來看,也就是會載入到 Linux kernel 之中,在非使用者模式下來執行的程式模組。通常會需要載入 kernel 來執行的程式,大多是驅動程式與硬體相關。所以她最大的優點 (或說是目的) 就是得以減小 Linux kernel,讓 Linux 可以更具有彈性,可以只依據需求載入必要的模組。如此一來,Linux 可以做到更小,更快速,或是更能調教成特定功能的系統。例如有很多嵌入式系統,或是 Android 系統,其核心都是 Linux 系統。