搜尋此網誌

網頁

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的可能。

ChildhoodOS <學習撰寫kernel>

網頁連結: http://www.plurk.com/ChildhoodOS

FreedomHEC Taipei 2009

網頁連結: http://freedomhectaipei.pbworks.com/

2010年5月19日 星期三

什麼是firmware?

韌體(firmware),是一種嵌入在電腦硬體裝置中的軟體。通常它是位於快閃記憶體中,而且可以讓使用者更新。韌體的範例包括,個人電腦中的BIOS、在唯讀記憶體中的電腦程式(硬體的設定通常用軟體的方式來表示),或是在可程式化唯讀記憶體中,這些程式可以被特別的外部硬體來更改,而不是經由應用程式更新。

原文連結: http://www.eettaiwan.com/SEARCH/ART/firmware.HTM

中文Wiki : http://zh.wikipedia.org/zh-tw/Firmware

英文Wiki: http://en.wikipedia.org/wiki/Firmware

Bootchart

1. 原文連結: http://www.bootchart.org/

2. 砍掉重練的Bootchart: http://fred-zone.blogspot.com/2008/07/bootchart.html

2010年5月12日 星期三

補登日期

入場時間 5/13 12:50