linux驅動學習路線:
1、編寫hello模組,學會基本的流程,能看到輸出;
2、寫一完整驅動, 加上read, write, ioctl, polling等各種函式的驅動實現,在ioctl裡完成從使用者空間向核心空間傳遞結構體的實現。
3、 寫一block驅動, 加上read,write,ioctl,poll等各種函式實現。
4、簡單學習下記憶體管理, 這個是最難的,明白各種memory alloc的函式實現細節。這是linux開發的基本功。
5、 學習鎖機制的應用,這個不是最難的但是最容易犯錯的,涉及到很多同步和併發的問題。
6、 看核心中實際應用的驅動**。 你會發現最基本的你已經知道了, 大的框架都是一樣的, 無非是read, write, ioctl等函式的實現, 但裡面包含了很多很多細小的實現細節是之前不知道的。 這時候就要考慮到很多別的問題而不僅僅是基本功能的實現。
推薦您看2.6.20中integrated的乙個驅動 kvm, 記得是在driver/lguest下,很好玩的, 就是linux下的虛擬機器驅動, **不長,但功能強大。有能力的可以自己寫一作業系統按照要求做成磁碟映象載入到虛擬機器中, 然後客戶機可以有自己的4g虛擬位址空間。
7、看完驅動歡迎您進入linux kernel學習中來。
最簡單的方法,跟著ldd(linux devive driver)做一遍
詳細解讀字元驅動各函式:
核心中的三大結構:file,file_operations,inode :
gcc命令詳細剖析:
驅動 linux裝置驅動 字元裝置驅動開發
preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...
Linux裝置驅動之《字元裝置驅動》
linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...
Linux裝置驅動之字元裝置驅動
一 linux裝置的分類 linux系統將裝置分成三種基本型別,每個模組通常實現為其中某一類 字元模組 塊模組或網路模組。這三種型別有 字元裝置 字元裝置是個能夠像位元組流 類似檔案 一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置可以通過檔案系統節點來訪問,比如 dev tty1等。這...