W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在 2.5 開發(fā)循環(huán)中一個(gè)聲明的目標(biāo)是為內(nèi)核創(chuàng)建一個(gè)統(tǒng)一的設(shè)備模型. 之前的內(nèi)核沒有單一的數(shù)據(jù)結(jié)構(gòu), 使它們可以來獲取關(guān)于系統(tǒng)如何整合的信息. 盡管缺乏信息, 有時(shí)事情也進(jìn)行的不錯(cuò). 新系統(tǒng), 帶有它們的更加復(fù)雜的技術(shù)并且需要支持諸如電源管理等特性, 但是, 清楚地要求需要一個(gè)通用的描述系統(tǒng)結(jié)構(gòu)的抽象.
2.6 設(shè)備模型提供了這個(gè)抽象. 現(xiàn)在它用在內(nèi)核來支持廣泛的任務(wù), 包括:
電源管理和系統(tǒng)關(guān)機(jī)
這些需要一個(gè)對(duì)系統(tǒng)的結(jié)構(gòu)的理解. 例如, 一個(gè) USB 宿主適配器不可能被關(guān)閉, 在處理所有的連接到這個(gè)適配器的設(shè)備之前. 這個(gè)設(shè)備模型使能了一個(gè)按照正確順序的系統(tǒng)硬件的遍歷.
與用戶空間的通訊
sysfs 虛擬文件系統(tǒng)的實(shí)現(xiàn)被緊密地捆綁進(jìn)設(shè)備模型, 并且暴露它所代表的結(jié)構(gòu). 關(guān)于系統(tǒng)到用戶空間的信息提供和改變操作參數(shù)的旋紐正越來越多地通過 sysfs 和 通過設(shè)備模型來完成.
可熱插拔設(shè)備
計(jì)算機(jī)硬件正更多地動(dòng)態(tài)變化; 外設(shè)可因用戶的一時(shí)念頭而進(jìn)出. 在內(nèi)核中使用的來處理和(特別的)與用戶空間關(guān)于設(shè)備插入和拔出的通訊, 是由設(shè)備模型來管理.
設(shè)備類別
系統(tǒng)的許多部分對(duì)設(shè)備如何連接沒有興趣, 但是它們需要知道什么類型的設(shè)備可用. 設(shè)備模型包括一個(gè)機(jī)制來分配設(shè)備給類別, 它在一個(gè)更高的功能性的級(jí)別描述了這些設(shè)備, 并且允許它們從用戶空間被發(fā)現(xiàn).
對(duì)象生命期
許多上面描述的功能, 包括熱插拔支持和 sysfs, 使在內(nèi)核中創(chuàng)建和操作對(duì)象復(fù)雜了. 設(shè)備模型的實(shí)現(xiàn)要求創(chuàng)建一套機(jī)制來處理對(duì)象生命期, 它們之間的關(guān)系, 和它們?cè)谟脩艨臻g的表示.
Linux 設(shè)備模型是一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu). 例如, 考慮圖設(shè)備模型的一小部分, 它展示了(用簡(jiǎn)單的形式)和 USB 鼠標(biāo)關(guān)聯(lián)的設(shè)備模型結(jié)構(gòu)的微小片段. 圖中心的下方, 我們看到核心"設(shè)備"樹, 展示了鼠標(biāo)如何連接到系統(tǒng). "bus"樹跟蹤什么連接到每個(gè)總線, 而在"classes" 下的子樹涉及設(shè)備提供的功能, 不管它們是如何連接的. 設(shè)備模型樹即便在一個(gè)簡(jiǎn)單的系統(tǒng)中也包含幾百個(gè)節(jié)點(diǎn), 如同在圖中展示的那些; 它是一個(gè)難于整個(gè)呈現(xiàn)的數(shù)據(jù)結(jié)構(gòu).
圖?14.1.?設(shè)備模型的一小部分
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: