由於工作上的需求接觸到 Linux 系統模組的除錯,進而對 Linux 系統模組的運作產生興趣。藉此機會,想把自己在 Linux kernel module 上...
在 Linux 中想要知道目前在入的 kernel module 有哪些,可以透過 lsmod 命令來取得,或是輸出 /proc/modules 的內容 ( 其...
不免俗的,我們也以 "Hello World" 來作為 kernel module 程式設計的第一個嘗試: /* * hello-1...
前篇介紹的 hello-1.c 需要進行編譯成 kernel module 之後,才能夠載入執行,而編譯 kernel module 跟編譯一般程式有很大的不同...
編譯完成了 hello-1.ko 之後,接下來我們就要執行他,而在載入之前先透過 modinfo 命令確認一下他的內容: [root@Pomelo-14-61...
在 Hello World 的例子中提到,init_module() 與 cleanup_module() 都是 kernel module 中兩個基本需要的函...
當然可以在載入 module 的同時帶參數進去,只不過不是用傳統的 argc/argv 的方式。在 Linux kernel 中,必須藉助 module_par...
從之前的幾個例子,我們已經領略了 kernel module 是如何的去開始與結束,以及傳遞參數,看到他跟 user mode 程式在這部分有很大的差異。其實在...
高階的 function library,是屬於 user mode 的函數,是給程式設計師方便使用的 API。而真正在 kernel 中運行的是低階的 sys...
程式不外乎就是要利用系統的資源去完成他的指令動作,因為 Linux 是多功的作業系統,所以多個程式同時去競爭使用有限的 (如記憶體) 或是同一個 (對同一磁碟進...