字元裝置驅動 —— 字元裝置驅動框架

安信實驗室發表於2021-10-19

1、概述:
linux中一切皆檔案,裝置也如此,並且以操作檔案即檔案IO的方式訪問裝置。
  應用程式只能透過庫函式中的系統呼叫來操作硬體,對於每個系統呼叫,驅動程式中都會有一個與之對應的函式,對於字元裝置驅動,這些函式集中在file_operations結構體中。當應用程式使用系統呼叫read、write等函式訪問裝置時,最終會呼叫到file_opeartions中的成員,當然一開始fops中的只是一大堆函式指標的呼叫介面,具體的函式就需要我們在驅動中實現,實現對應操作函式後,與fops一對接,應用程式最終就能對硬體進行控制了。
  那麼問題來了,當應用程式使用系統呼叫訪問裝置時,linux系統怎麼知道呼叫哪一個驅動的fops中的成員呢?
2、裝置號、裝置節點
裝置號和驅動相關聯
    裝置號是一個ID,裝置節點就是驅動檔案
    字元裝置和塊裝置是獨立的,雖然裝置號可能相同,但卻是不同的裝置



  3、字元裝置驅動框架

作為字元裝置驅動要素:
1,必須有一個裝置號,用在眾多到裝置驅動中進行區分
2,使用者必須知道裝置驅動對應到裝置節點(裝置檔案)
linux把所有到裝置都看成檔案

crw-r----- 1 root root 13, 64 Mar 28 20:14 event0
crw-r----- 1 root root 13, 65 Mar 28 20:14 event1
crw-r----- 1 root root 13, 66 Mar 28 20:14 event2
3,對裝置操作其實就是對檔案操作,應用空間操作open,read,write的時候
實際在驅動程式碼有對應到open, read,wri


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946382/viewspace-2838187/,如需轉載,請註明出處,否則將追究法律責任。

相關文章