前面兩章我們瞭解了Linux驅動程序的基本框架,也瞭解瞭如何編譯Linux的驅動程序。接下來我們有必要介紹Linux系統的設備了,這樣我們才能清楚的知道應用程序和設備驅動程序是如何的工作的,或者說應用程序是如何控制驅動程序的,進而知道應用程序是如何通過驅動程序操作設備的。
Linux設備分類
Linux下的設備通常分爲三類,字符設備,塊設備和網絡設備。
- 字符設備
root#ls -l /dev/ttyS[0-3] crw-rw---- 1 root root 4, 64 Feb 18 23:34 /dev/ttyS0 crw-r----- 1 root root 4, 65 Nov 17 10:26 /dev/ttyS1 crw-rw---- 1 root root 4, 66 Jul 5 2000 /dev/ttyS2 crw-rw---- 1 root root 4, 67 Jul 5 2000 /dev/ttyS3 |
- 塊設備
root# ls -l /dev/hda[1-3] brw-rw---- 1 root root 3, 1 Jul 5 2000 /dev/hda1 brw-rw---- 1 root root 3, 2 Jul 5 2000 /dev/hda2 brw-rw---- 1 root root 3, 3 Jul 5 2000 /dev/hda3 |
- 網絡設備
設備節點、設備驅動及設備的關聯
當我們訪問一個設備節點是,系統是如果知到使用哪個設備驅動及訪問哪個設備的呢?這個是通過設備號來實現的。當我們創建一個設備節點時需要指定主設備號和次設備號。對於設備節點來說,名字不是重要的,設備號纔是最重要的,它實際指定了對應的驅動程序和對應的設備。
- 主設備號
- 次設備號
後記
這一章我們瞭解了Linux設備、設備節點與設備驅動的關係,也瞭解了應用程序是如何通過設備驅動程序訪問設備的。下一章我們就可以給Hello World程序添加讀寫功能了,並且爲它創建一個設備節點,這樣我們就可以通過應用程序來操作Hello World驅動程序的內容了。