機制是指要提供什麼樣的功能。
策略是指如何使用這些功能。
linux有個很好的特性,核心提供的特性可以在執行時候擴充套件,也就是在核心啟動後,可以向核心動態的新增/移除功能。可以在執行時候新增到核心的**就叫做模組。
模組由目標**組成(未link成可執行程式),用 insmod安裝模組, rmmod移除模組。
一般講裝置分為3中基本型別:
char裝置是乙個像檔案流一樣被訪問的裝置。
字元裝置驅動一般要實現open,close,read,write這幾個基本操作。裝置通過檔案系統節點被訪問,但是一般字元裝置只能順序訪問,不能前後移動訪問位置,常見的終端裝置就是乙個char裝置。
塊裝置也是通過/dev目錄下的檔案系統節點來訪問。一般塊裝置上會容納檔案系統,進行io操作的時候是按照塊為單位,如512位元組每塊進行訪問。在核心中,塊裝置的驅動程式介面和字元裝置驅動程式的介面完全不同,但是對於使用者層來說這些差別被封裝了。
網路裝置是以資料報為基礎的,而不是基於流的,所以網路裝置沒有檔案系統節點。核心呼叫一套和資料報傳輸相關的函式來和網路裝置通訊,和塊裝置完全不一樣。
一般偶數編號的核心是正式版本(2.6.x),而奇數的是開發版本(2.7.x)。
linux-kernel郵件列表是linux核心開發者的聚集中心,是很重要的核心開發資料。
裝置驅動(1) 驅動程式簡介
裝置驅動是幹什麼用的?linux裝置驅動程式使得特定的硬體響應乙個定義良好的內部程式設計介面 系統呼叫open read write close 這些介面完全隱藏了裝置的工作細節。使得使用者通過呼叫標準的系統呼叫來完成對於硬體的操作。字元裝置是一種按位元組順序訪問的裝置,因此字元裝置通常至少要實現o...
Linux裝置驅動程式 基礎簡介
裝置和模組的分類 安全問題 裝置驅動的作用在於提供機制,而不是提供策略。1 機制和策略分離的好處是啥?可以使軟體包更易開發,也更容易根據不同的需求來調整以實現不同的策略。2 機制是啥?機制是類似於提供什麼樣的功能。3 策略是啥?策略類似於如何使用上面的功能 4 驅動程式的機制和策略的分離有啥例子?以...
linux裝置驅動程式 字元裝置驅動程式
先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...