了解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)做一遍。
本文轉hackfreer51CTO部落格,原文連結:http://blog.51cto.com/pnig0s1992/602276,如需轉載請自行聯系原作者