裝置號是在驅動module中分配並註冊的,也就是說,驅動module擁有這個裝置號(我的理解),而/dev目錄下的裝置檔案是根據這個裝置號建立的,因此,當訪問/dev目錄下的裝置檔案時,驅動module就知道,自己該出場服務了(當然是由核心通知)。
在linux核心看來,主裝置號標識裝置對應的驅動程式,告訴linux核心使用哪乙個驅動程式為該裝置(也就是/dev下的裝置檔案)服務;而次裝置號則用來標識具體且唯一的某個裝置。
linux的裝置管理是和檔案系統緊密結合的,把裝置和檔案關聯起來,這樣系統呼叫可以直接用操作檔案一樣的方法來操作裝置。各種裝置都以檔案的形式存放在/dev目錄下,稱為裝置檔案。應用程式可以開啟、關閉和讀寫這些裝置檔案,完成對裝置的操作,就像操作普通的資料檔案一樣。為了管理這些裝置,系統為裝置編了號,每個裝置號又分為主裝置號和次裝置號。主裝置號用來區分不同種類的裝置,而次裝置號用來區分同一型別的多個裝置。對於常用裝置,linux有約定俗成的編號,如硬碟的主裝置號是3。
主裝置號和次裝置號
上圖中,紅色方塊內為裝置的主裝置號,黃色方塊內為裝置的次裝置號。主裝置號是表示系統訪問這個裝置的 核心驅動 驅動程式是unix系統核心 中的一部分,其作用是用來控制一種特殊裝置的輸入輸出。大多數的unix系統都有多種裝置驅動程式,每乙個裝置檔名中的主裝置號就代表這個裝置使用的是哪個裝置驅動程式。次裝...
linux驅動入門之自動分配主裝置號 建立裝置節點
以開發板按鍵為例,在開發板上執行 1.second drv.c檔案 include include include include include include 包含class create,device create,這些程式 include include include 版本核心為此位置 之...
裝置驅動及Linux裝置號
在乙個計算機系統的開發過程中,應用層一般不會去關心底層硬體的具體操作,而是專注於應用層業務邏輯的實現,因此我們會將涉及到裝置硬體底層的操作封裝成乙個個介面,應用層在進行業務設計的過程中只需呼叫這些介面便可以完成想要的操作,這些介面我們可以成為裝置驅動。即使在乙個不執行作業系統的系統中 如傳統的51微...