搜尋此網誌

網頁

2010年5月26日 星期三

Linux Device Driver Review

1. 影響driver運行機制的因素只有2種: (1). fork child process (2)pthread programming.

2. open system call 的主要用途在於初始化硬體。

3. struct file 為kernel提供出來給driver function使用,只能在kernel mode 下使用。

4. 設計driver的第一件事情是設計 file operation,user program 開啟裝置檔 -> VFS透過major # 開啟相映的裝置檔->user program 呼叫driver提供的system call。

5. kernel 會將struct file allocate 到 一個stack中,所有的kernel module 都可以存取得到。

6. read driver code 的技巧是 先了解一個區塊的code其功用,再去深入了解API等detail部分,千萬別直接深入細節部分。

7. 使用到 copy_to_user 、 copy_from_user、kmalloc 等API之函數(ex: open 、read 、write...)必須是可重覆進入函數。

8. running 狀態下的 user space process 將時間用完之後,會被重新放回至ready queue。

9. 依照硬體特性決定使用kernel timer 或 interrupt handler 。

10. sleep 中的process 在wake up 之後會先進入ready queue,並不會馬上進入執行。

11. sysfs 的概念在2.6才引進嗎? 是否改變了driver的架構。

12. make uImage 時會在kernel folder下 include/config/產生auto.conf在 kernel folder 下 include/linux/產生 autoconf.h 。

13. bash shell 將stdin --> 0 stdout --> 1 stderr --> 2 , 因此當fd = fopen(), 後fd會有3種value的可能。

2 則留言:

  1. 這不是review吧 這都是driver入門不是嗎...

    回覆刪除
  2. 歹勢,對我來說是review ^^

    回覆刪除