Linux驅動程式框架以及概述

2021-10-14 14:33:00 字數 1160 閱讀 4105

1、字元裝置(char device)

2、塊裝置(block device)

3、網路裝置(net device)

1、對裝置初始化和釋放

2、把資料從核心傳送到硬體和從硬體讀取資料

3、讀取應用程式傳送給裝置檔案的資料和回送應用程式請求的資料

4、檢測和處理裝置出現的錯誤

訪問特定硬體

訪問特定硬體就是訪問實體地址(如處理器內裝置的暫存器、外設的位址對映)。然而由於mmu的記憶體對映以及對作業系統的保護,執行在使用者態的應用程式一般不能直接訪問硬體位址。因此需要驅動程式作為應用程式和訪問硬體之間的媒介。

靜態編譯、動態載入

linux提供了一種核心模組機制。乙個模組被編譯成單獨的核心模組後,一開始可以不編譯到整個核心中,當核心需要加入該模組的時候,不需要重新編譯整個核心,只需要將該核心模組插入(載入)到正在執行的核心中。同樣,也可以從正在執行的核心中解除安裝。

linux裝置驅動可以使用兩種方式被編譯和載入:

1、直接編譯到linux核心,隨linux啟動時載入,隨時可以使用該驅動程式;

2、編譯成乙個可載入和刪除的模組,用insmod載入,rmmod刪除。

1、裝置初始化/釋放:

負責對裝置進行初始化和釋放

初始化檢測所要驅動的硬體裝置是否存在、能否正常工作。如果裝置正常,則對裝置及相關驅動程式

需要的軟體狀態進行配置/初始化。

2、上半部分:服務於檔案系統i/o

負責:通過檔案系統從應用程式讀取資料,把資料通過檔案系統回送給應用程式(檔案系統層裝置驅動層)

這部分由檔案系統相關的系統呼叫執行,和呼叫程序屬於同乙個程序,具有呼叫程序的執行環境,只是由使用者態變成了核心態。

3、下半部分:服務於硬體裝置的i/o

負責:把資料從核心傳送到硬體,從硬體讀取資料到核心(裝置驅動曾硬體層)

這部分可以通過中斷方式實現,對於多數裝置可以提高cpu處理效率。

這部分也可以不通過中斷方式實現,只要能完成裝置驅動層和硬體之間的資料通訊即可。

Linux系統下驅動程式框架概述

一 linux的裝置驅動程式與外界的介面可以分為三個部分 1 驅動程式與作業系統核心的介面。通過file operations include linux fs.h 資料結構來完成的。2 驅動程式與系統引導的介面。這部分利用驅動程式對裝置進行初始化。3 驅動程式與裝置的介面。這部分描述了驅動程式如何...

Linux驅動程式框架介紹

一 linux的裝置驅動程式與外界的介面可以分為三個部分 1 驅動程式與作業系統核心的介面。通過file operations include linux fs.h 資料結構來完成的。2 驅動程式與系統引導的介面。這部分利用驅動程式對裝置進行初始化。3 驅動程式與裝置的介面。這部分描述了驅動程式如何...

Linux驅動程式框架介紹

一 linux的裝置驅動程式與外界的介面可以分為三個部分 1 驅動程式與作業系統核心的介面。通過file operations include linux fs.h 資料結構來完成的。2 驅動程式與系統引導的介面。這部分利用驅動程式對裝置進行初始化。3 驅動程式與裝置的介面。這部分描述了驅動程式如何...