老手經驗談:Linux驅動程式開發學習步驟

來源:互聯網
上載者:User

1. 學會寫簡單的makefile

2. 編一應用程式,可以用makefile跑起來

3. 學會寫驅動的makefile

4. 寫一簡單char驅動,makefile編譯通過,可以insmod, lsmod, rmmod. 在驅動的init函數裡列印hello world, insmod後應該能夠通過dmesg看到輸出。

5. 寫一完整驅動, 加上read, write, ioctl, polling等各種函數的驅動實現。 在ioctl裡完成從使用者空間向核心空間傳遞結構體的實現。

6. 寫一block驅動, 加上read,write,ioctl,poll等各種函數實現。

7. 簡單學習下記憶體管理, 這個是最難的,明白各種memory alloc的函數實現細節。這是linux開發的基本功。

8. 學習鎖機制的應用,這個不是最難的但是最容易犯錯的,涉及到很多同步和並發的問題。

9. 看核心中實際應用的驅動代碼。 你會發現最基本的你已經知道了, 大的架構都是一樣的, 無非是read, write, ioctl等函數的實現, 但裡麵包含了很多很多細小的實現細節是之前不知道的。 這時候就要考慮到很多別的問題而不僅僅是準系統的實現。

推薦您看2.6.20中integrated的一個驅動 kvm,記得是在driver/lguest下,很好玩的, 就是linux下的虛擬機器驅動,代碼不長,但功能強大。有能力的可以自己寫一作業系統按照要求做成磁碟鏡像載入到虛擬機器中, 然後客戶機可以有自己的4G虛擬位址空間。

10. 看完驅動歡迎您進入Linux kernel學習中來。

最簡單的方法,跟著ldd(linux devive driver)做一遍。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: