第七屆 佳作

dev
Linux kernel模組的開發
chiounan

系列文章

DAY 21

執行系統呼叫

程式送出中斷來執行系統呼叫的時候,會帶一個系統呼叫標號,以指出將要執行的 kernel 動作是甚麼。然後 kernel 會去查表 (sys_call_table...

DAY 22

系統呼叫的範例

因為原本參考的資料其例子有錯,所以特此列出來修正,同時說明實作系統呼叫的方法。 原本的例子 (syscall.c): http://www.tldp.org/L...

DAY 23

IOCTL 範例

因為之前介紹的網站 (http://www.tldp.org/LDP/lkmpg/2.6/html/x892.html) 上所提供的例子有錯,所以在這邊舉另一個...

DAY 24

Process sleep 的注意事項

當 driver 無法當下回應 user space 的動作要求時,譬如說設備正在忙碌,或者是 buffer 滿了暫時無法寫入等等,driver 都必須讓 pr...

DAY 25

Process wake up 的注意事項

當一個 sleep 的 process 再度被喚醒之後,有幾件事情也是必須注意的:我們無法預期 process 會 sleep 多久,也就是說 process...

DAY 26

Blocking 與 Non-blocking I/O

允許 sleep/awaken 動作的 process 稱之為 blocking I/O,反之不允許 sleep 動作的稱之為 non-blocking I/O...

DAY 27

輸出訊息到當下 tty 的範例

tty (Teletype) 指的是跟系統溝通的輸出入介面,它可以是連接主機的 terminal (螢幕 + 鍵盤)、X-Window,或是網路連結的 ssh/...

DAY 28

工作排程

在 Linux 中如果要在預定的時間內去執行特定動作,我們通常會透過設定 crontab,好讓他依照排定的時間去執行。可是如果我們想要排定的工作是某個 kern...

DAY 29

中斷控制

Kernel module 跟程式之間的互動主要是透過特定檔案控制、傳送 IOCTL,還有系統呼叫,然而 kernel module 並不只有回應 user s...

DAY 30

對稱式多工處理 SMP

單一電腦多 CPU 核心是目前電腦的主流,而多個 CPU 的運作方式可分為不同 CPU 負擔不同工作的非對稱模式 (asymmetrical multi-pro...