iT邦幫忙

鐵人檔案

2014 iT 邦幫忙鐵人賽
回列表

Linux kernel模組的開發 系列

由於工作上的需求,接觸到Linux系統模組的除錯,進而對Linux系統模組的運作產生興趣。藉此機會,想把自己在Linux kernel module上的心得與各位邦友分享。

鐵人鍊成 | 共 30 篇文章 | 15 人訂閱 訂閱系列文 RSS系列文
DAY 21

執行系統呼叫

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

2014-10-21 ‧ 由 chiounan 分享
DAY 22

系統呼叫的範例

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

2014-10-22 ‧ 由 chiounan 分享
DAY 23

IOCTL 範例

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

2014-10-23 ‧ 由 chiounan 分享
DAY 24

Process sleep 的注意事項

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

2014-10-24 ‧ 由 chiounan 分享
DAY 25

Process wake up 的注意事項

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

2014-10-25 ‧ 由 chiounan 分享
DAY 26

Blocking 與 Non-blocking I/O

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

2014-10-26 ‧ 由 chiounan 分享
DAY 27

輸出訊息到當下 tty 的範例

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

2014-10-27 ‧ 由 chiounan 分享
DAY 28

工作排程

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

2014-10-28 ‧ 由 chiounan 分享
DAY 29

中斷控制

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

2014-10-29 ‧ 由 chiounan 分享
DAY 30

對稱式多工處理 SMP

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

2014-10-30 ‧ 由 chiounan 分享