北航linux課件——Linux 設備管理.ppt

北航linux課件——Linux 設備管理.ppt

ID:50450347

大?。?26.50 KB

頁數:12頁

時間:2020-03-13

北航linux課件——Linux 設備管理.ppt_第1頁
北航linux課件——Linux 設備管理.ppt_第2頁
北航linux課件——Linux 設備管理.ppt_第3頁
北航linux課件——Linux 設備管理.ppt_第4頁
北航linux課件——Linux 設備管理.ppt_第5頁
資源描述:

《北航linux課件——Linux 設備管理.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、Linux設備管理模塊的安裝和卸載設備管理模塊的安裝和卸載模塊:可以作為獨立程序來編譯的函數和數據結構的集合。它可以動態(tài)的增加內核的功能。裝載:靜態(tài)裝載:在內核啟動時動態(tài)裝載:在內核運行時注:當前裝載的模塊可以在/proc/modeles讀出。模塊一旦被裝入系統,就在內核地址空間中管態(tài)下執(zhí)行。模塊中的每個新函數都必須在模塊裝入內核中時進行注冊。模塊卸載時,函數必須注銷。模塊的裝載insmode過程:1、新模塊加入到內核空間2、查找導出的內核符號對模塊中的外部符號引用進行解析,并確保該模塊所引用的其它模塊均已裝入系統。3、為新模塊分配內存空間4、裝載新模塊

2、,并導出該模塊定義的符號。5、調用新模塊中的初始化函數模塊的安裝和卸載模塊的卸載rmmod過程:注銷相應的函數和內核符號取消虛擬地址映像釋放模塊使用空間說明:如有其它模塊引用它,則不能卸載。模塊的安裝和卸載設備管理系統中的所有硬件設備看起來都和一般的文件一樣,它們可以使用處理文件的標準系統調用來打開、關閉和讀寫。系統中的每一個設備都由一個設備文件來代表,設備文件名由主設備號和從設備號組成。例如,主IDE硬盤的設備文件是/dev/hda。一個設備驅動程序控制的所有設備有一個相同的主設備號,通過不同的從設備號來區(qū)分設備和它們的控制器。例如,主IDE硬盤的每一

3、個分區(qū)都有一個不同的從設備號,這樣主IDE硬盤的第二個分區(qū)的設備文件是/dev/hda2。Linux系統使用主設備號和系統中的一些表來將系統調用中使用的設備文件映射到設備驅動程序中。Linux系統支持三種類型的硬件設備字符設備:字符設備是直接讀取的,不必使用緩沖區(qū)。塊設備:塊設備每次只能讀取一定大小的塊的倍數,通常一塊是512或者1024字節(jié)。塊設備通過緩沖區(qū)讀寫,并且可以隨機地讀寫。塊設備可以通過它們的設備文件存取,但通常是通過文件系統存取。只有塊設備支持掛接的文件系統。網絡設備:網絡設備是通過BSD套接字接口存取的。設備管理Linux系統支持多種設備

4、,這些設備的驅動程序之間有一些共同的特點:內核代碼:設備驅動程序是系統內核的一部分,所以如果驅動程序出現錯誤的話,將可能嚴重地破壞整個系統。內核接口:設備驅動程序必須為系統內核或者它們的子系統提供一個標準的接口。內核機制和服務:設備驅動程序利用一些標準的內核服務,例如內存分配等??裳b入:大多數的Linux設備驅動程序都可以在需要時裝入內核,在不需要時卸載??稍O置:Linux系統設備驅動程序可以集成為系統內核的一部分,至于哪一部分需要集成到內核中,可以在系統編譯時設置。動態(tài)性:當系統啟動并且各個設備驅動程序初始化以后,驅動程序將維護其控制的設備。如果設備驅

5、動程序控制的設備并不存在,也并不妨礙系統的運行。設備管理設備管理Linux內核和設備驅動程序之間使用標準的交互接口。設備驅動程序在其初始化時就在系統內核中進行登記。Linux系統使用設備驅動程序的登記表作為內核和驅動程序接口的一部分。這些表中包括指向處理程序的指針和其他信息。主設備號chrdevs數組blkdevs數組VFSinode數組元素均為device_struct結構設備管理字符設備name:指向登記的設備驅動程序名fops:指向一個包括各種文件操作過程的地址的數組。此數組中包括的地址指向設備驅動程序中處理文件的操作,例如,打開、讀寫和關閉子過程

6、。塊設備內核對塊設備的操作要使用緩沖區(qū)。因此,每一個塊設備驅動程序必須既向緩沖區(qū)提供接口,也提供一般的文件操作接口。每一個塊設備都在blk_dev數組中有一個blk_dev_struct結構的記錄。數據結構blk_dev_struct包括:request_queue:指向請求數據結構鏈表的指針,每一個請求數據結構都代表一個來自緩沖區(qū)的請求queue:請求過程的地址data:輔助信息,幫助找到特定設備的請求隊列設備管理設備管理每當緩沖區(qū)希望和一個在系統中注冊的塊設備交換數據,它都會在blk_dev_struct中添加一個請求數據結構。每一個請求都有一個指針

7、指向一個或者多個buffer_head數據結構,每一個buffer_head結構都是一個讀寫數據塊的請求。每一個請求結構都在一個靜態(tài)鏈表all_requests中。如果請求添加到了一個空的請求鏈表中,則調用設備驅動程序的請求函數來開始處理請求隊列。否則,設備驅動程序只是簡單地處理請求隊列中的每一個請求。一旦設備驅動程序完成了一個請求,它將把buffer_head結構從request結構中移走,并把buffer_head結構標記為已更新,同時將它解鎖。這樣就可以喚醒等待鎖定操作完成的進程。設備管理

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。