新聞中心
linux設(shè)備模型是一種非常復(fù)雜的架構(gòu),它是Linux內(nèi)核中最基本的部分,它將用戶進(jìn)程和設(shè)備驅(qū)動程序分離開來。它允許用戶進(jìn)程在對設(shè)備數(shù)據(jù)進(jìn)行高層操作時不受設(shè)備驅(qū)動程序的影響,因?yàn)閮烧呤仟?dú)立的。

linux設(shè)備模型由設(shè)備樹組成,這個設(shè)備樹類似于文件樹,它由每個設(shè)備和每個設(shè)備類型對應(yīng)的文件系統(tǒng)構(gòu)成,并定義了訪問設(shè)備的方式。設(shè)備樹的根文件系統(tǒng)是/dev,它將所有連接的設(shè)備文件系統(tǒng)都包含在其中,如果用戶進(jìn)程想要訪問某個設(shè)備,它只需要找到設(shè)備文件系統(tǒng)的映射,就可以訪問該文件系統(tǒng),然后用ls命令可以看到所有可用的設(shè)備文件。
Linux設(shè)備模型還包括設(shè)備驅(qū)動程序,它是一個獨(dú)立于操作系統(tǒng)的支持程序,它與設(shè)備驅(qū)動程序之間通過設(shè)備驅(qū)動程序抽象接口(dai)進(jìn)行通信。設(shè)備驅(qū)動程序是用戶進(jìn)程和設(shè)備驅(qū)動程序之間的溝通橋梁,它控制訪問設(shè)備的權(quán)限,過濾掉無效的請求,并將用戶進(jìn)程的操作映射到特定的設(shè)備上。
Linux設(shè)備模型還包括設(shè)備樹緩沖區(qū)(dtb),它存儲著設(shè)備樹,以及每個設(shè)備和設(shè)備類型對應(yīng)的配置數(shù)據(jù)。它還存儲了以前被加載的設(shè)備驅(qū)動程序,以及驅(qū)動程序所需要的其他必要環(huán)境變量。
可以用以下代碼來總結(jié)Linux設(shè)備模型:
#include
struct device_node *node;
node = of_find_node_by_name(NULL, “名稱”);
while (node)
{
//訪問各個設(shè)備的數(shù)據(jù)
of_node_put(node);
node = of_find_node_by_name(node, “名稱”);
}
Linux設(shè)備模型解析出來后,用戶可以通過它實(shí)現(xiàn)更高層次的操作,從而更好地應(yīng)用到不同的硬件或軟件中。它的復(fù)雜性之所以存在,是為了使Linux更為可靠,這樣就可以支持更多的硬件和軟件了。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:Linux設(shè)備模型:解析復(fù)雜的架構(gòu)(linux設(shè)備模型)
轉(zhuǎn)載源于:http://www.5511xx.com/article/dpiieoh.html


咨詢
建站咨詢
