了解linux驅動程序技巧學習的方法很重要,學習linux操作系統時,你可能會遇到關於驅動方面的問題,這裡將介紹學習linux驅動程序的方法,在這裡拿出來和大家分享一下。
1.學會寫簡單的makefile
2.編一應用程序,可以用makefile跑起來
3.學會寫linux驅動程序的makefile
4.寫一簡單char驅動,makefile編譯通過,可以insmod,lsmod,rmmod.在驅動程序的init函數裡打印helloworld,insmod後應該能夠通過dmesg看到輸出。
5.寫一完整驅a動,加上read,write,ioctl,polling等各種函數的驅動實現。在ioctl裡完成從用戶空間向內核空間傳遞結構體的實現。
6.寫一block驅動程序加上read,write,ioctl,poll等各種函數實現。
7.簡單學習下內存管理,這個是最難的,明白各種memoryalloc的函數實現細節。這是linux開發的基本功。
8.學習鎖機制的應用,這個不是最難的但是最容易犯錯的,涉及到很多同步和並發的問題。
9.看內核中實際應用的linux驅動程序代碼。你會發現最基本的你已經知道了,大的框架都是一樣的,無非是read,write,ioctl等函數的實現,但裡面包含了很多很多細小的實現細節是之前不知道的。這時候就要考慮到很多別的問題而不僅僅是基本功能的實現。
推薦您看2.6.20中integrated的一個驅動kvm,記得是在driver/lguest下,很好玩的,就是linux下的虛擬機驅動程序,代碼不長,但功能強大。有能力的可以自己寫一操作系統按照要求做成磁盤鏡像加載到虛擬機中,然後客戶機可以有自己的4G虛擬地址空間。
10.看完linux驅動程序代碼歡迎您進入Linuxkernel學習中來。
最簡單的方法,跟著ldd(linuxdevivedriver)做一遍。