裝置驅動(1) 驅動程式簡介

2021-09-26 04:51:15 字數 1186 閱讀 7005

裝置驅動是幹什麼用的?

linux裝置驅動程式使得特定的硬體響應乙個定義良好的內部程式設計介面(系統呼叫open、read、write、close),這些介面完全隱藏了裝置的工作細節。使得使用者通過呼叫標準的系統呼叫來完成對於硬體的操作。

字元裝置是一種按位元組順序訪問的裝置,因此字元裝置通常至少要實現open、read、write、close方法,字元裝置可以通過檔案系統節點來訪問,字元裝置檔案與普通檔案之間的唯一差別在於對普通檔案的訪問可以前後移動訪問位置,而大多數字元裝置是乙個只能順序訪問。

塊裝置同樣可以通過/dev目錄下的檔案系統節點來訪問,在大多數unix系統中,塊裝置不能按位元組處理資料,只能一次傳送乙個或多個長度是512個位元組(或者乙個更大的2次冪的數)的整塊資料。而linux則允許塊裝置傳送任意位元組。因此,塊裝置和字元裝置的區別僅僅在於核心管理資料的方式,也就是核心與驅動程式之間的軟體介面,而這些對於使用者來說是透明的。

網路裝置:網路介面是由核心中的網路子系統驅動,負責傳送和接收資料報,但是它不需要了解每項事務如何對映到實際傳送的資料報。許多網路連線時面向流的,而網路裝置卻是圍繞資料報的傳輸和接收而設計的,網路驅動程式不需要知道各個連線的相關資訊,它只要處理資料報即可。由於網路裝置驅動不是面向流的,因此將網路介面對映到檔案系統中的節點比較困難,unix訪問網路介面的方法仍然是給他們分配乙個唯一的名字。但是這個名字在檔案系統中不存在對應的節點,核心和網路裝置驅動程式之間的通訊,完全不同於核心和字元或者核心和塊裝置驅動程式之間的通訊,核心呼叫一套和資料報傳輸相關的函式而不是read、write。

字元裝置和塊裝置的區別

二者的區別如下:字元裝置是不可以隨機訪問的,而塊裝置有儲存位置的概念是可以隨機訪問指定位置上的資料,如果塊裝置的容量足夠,就可以容納乙個檔案系統,有了檔案系統的塊裝置就可以被掛載,另外在linux系統中塊裝置是可以按位元組訪問的,linux中字元裝置驅動和塊裝置驅動的區別就在於驅動與核心的介面不同。

好的驅動程式包括一些典型的特徵:1) 同時支援同步和非同步操作、2) 驅動程式能夠被多次開啟、3)充分利用硬體特性、4)不包含用來簡化任務或者提供策略相關的軟體層

linux下驅動程式的載入方式

LDD Ch 1 裝置驅動程式簡介

機制是指要提供什麼樣的功能。策略是指如何使用這些功能。linux有個很好的特性,核心提供的特性可以在執行時候擴充套件,也就是在核心啟動後,可以向核心動態的新增 移除功能。可以在執行時候新增到核心的 就叫做模組。模組由目標 組成 未link成可執行程式 用 insmod安裝模組,rmmod移除模組。一...

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...

Linux裝置驅動程式 字元裝置驅動程式

1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...