Linux作業系統分析 裝置驅動處理流程

2021-06-14 23:25:39 字數 1326 閱讀 7931

字元裝置和塊裝置對映到作業系統中的檔案系統,由檔案系統向上提供給應用程式統一的介面用以訪問裝置。

linux把裝置視為檔案,稱為裝置檔案,通過對裝置檔案的讀寫操作實現對真實外設的操作。

從驅動程式的角度來從下到上看層次結構,包含了硬體裝置,裝置驅動程式(中斷處理程式,裝置服務程式),檔案系統和使用者程序四個層次:

需要知道的兩個概念:

裝置號:

裝置檔案:存在硬碟上的實際存在的檔案,包括裝置的名字,型別,裝置號

需要知道的三個關於驅動操作的資料結構:

至此,裝置驅動註冊完成,有相應的裝置驅動程式和裝置號與之對應。

裝置註冊完成後,可以開啟乙個裝置,這時候呼叫系統呼叫open()函式,經過一系列的呼叫,最後會呼叫chrdev_open()函式進行實際的開啟操作,其主要流程為:

裝置註冊開啟完成後,需要對其進行各種操作,外部裝置的操作有乙個特點就是操作時間較長,且操作時間不確定。

處理外部裝置運作時,主要有兩種方式:輪詢和中斷。

下面主要用介紹用中斷的模式等待外設完成操作,其主要流程為:

這裡簡單總結了一下linux處理外部裝置的主要流程,主要包括了外部裝置的註冊,開啟和通常的操作。

需要注意的知識點就是驅動裝置模型的概念,在字元裝置中位cdev。所有對裝置的操作,都是在cdev的ops欄位尋找處理程式,之前將cdev對映道inode的i_cedv中,cdev的ops欄位對映到裝置檔案file的f_op欄位,這樣對裝置檔案的操作就等同於對裝置的操作,這正是本文開頭所說明的裝置檔案對映到檔案系統的實質。

在外部裝置的操作流程中,涉及到中斷處理流程,主要指的是軟中斷,會在中斷一章詳細討論。

參考:linux作業系統分析ppt:驅動程式編寫基礎

Linux作業系統分析 裝置驅動處理流程

字元裝置和塊裝置對映到作業系統中的檔案系統,由檔案系統向上提供給應用程式統一的介面用以訪問裝置。linux把裝置視為檔案,稱為裝置檔案,通過對裝置檔案的讀寫操作實現對真實外設的操作。從驅動程式的角度來從下到上看層次結構,包含了硬體裝置,裝置驅動程式 中斷處理程式,裝置服務程式 檔案系統和使用者程序四...

Linux作業系統分析

馮諾依曼體系結構如圖所示,其中運算器 儲存器 控制器 輸入裝置和輸出裝置5大基本型別部件組成了計算機硬體。計算機內部採用二進位制來表示指令和資料,將其存入儲存器中,然後啟動計算機工作,這就是儲存程式的基本含義。cpu從記憶體中不斷取下一條指令來執行,cpu負責解釋和執行這些指令,它們通過匯流排連線起...

推薦系統 分析

收集使用者資訊的行為記錄模組 分析使用者喜好的模型分析模組 推薦演算法模組 推薦演算法 1.基於內容的推薦系統 content based recommendation 2.協同過濾推薦系統 collaborative filtering recommendation 3.混合推薦系統 hybrid...