第七屆 佳作

dev
Linux kernel模組的開發
chiounan

系列文章

DAY 11

變數的命名空間

之前在談 function library 與 system call 的時候就有提到,位甚麼在寫 kernel module 時,不像寫一般程式一樣,需要對引...

DAY 12

記憶體管理

當開始要執行一個程式的時候 (process 建立了),kernel 就會為這個 process 準備一塊記憶體讓他儲存執行程式所需要的變數、資料、stack...

DAY 13

Device driver

最常見的 kernel module 就是 device driver了,也就是各種硬體 (顯示卡、磁碟、serial port 等等) 的驅動程式。像是在 L...

DAY 14

在 kernel 中註冊 driver

在系統中新增一個 driver,即代表是在 kernel 中註冊一個位置,此刻會在 /dev/ 目錄底下建立一個檔案,同時賦予這個 driver 相對的 mao...

DAY 15

在 kernel 中移除 (反註冊) driver

要移除使用中的 kernel module 應該要設法避免有其他程式正在使用他,因為這將會導致存取不到內容而出錯、或者引用到錯誤的 module 上。 之前採用...

DAY 16

/proc 檔案系統

在 Linux 中 /proc 檔案系統可以用來做為 kernel module 傳送訊息給程式之用,也能夠記錄一些 kernel 的狀態,如 /proc/mo...

DAY 17

file_operations 資料結構

file_operations 資料結構是 Linux character device 的核心,程式呼叫到 kernel moduel 的動作時,實際上都是引...

DAY 18

寫入與讀取 /proc 檔案

上回介紹如何建立並從 /proc 檔案系統中讀取資料,這次來介紹如何寫入到自建的 /proc 檔案中。讀跟寫的基本動作一樣,都是令讀或寫的動作去執行對應的函數。...

DAY 19

與設備溝通

在 Linux 中,所有設備在 kernel 中皆有一個 device 檔來代表他,而要透過該設備進行輸出或輸出的動作時,也就相當於對他的 device fil...

DAY 20

系統呼叫 system call

所以程式與 kernel 進行溝通的動作,最後都是以系統呼叫 (system call) 的方式來進行,譬如程式需要開啟一個檔案、建立一個新的子行程、或是要求一...