<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > devfs、sysfs、udev

devfs、sysfs、udev

作者: 時(shí)間:2011-02-24 來(lái)源:網(wǎng)絡(luò ) 收藏
一、devfs
linux下有專(zhuān)門(mén)的文件系統用來(lái)對設備進(jìn)行管理,devfs和sysfs就是其中兩種。
在2.6內核以前一直使用的是devfs,devfs掛載于/dev目錄下,提供了一種類(lèi)似于文件的方法來(lái)管理位于/dev目錄下的所有設備,我們知道/dev目錄下的每一個(gè)文件都對應的是一個(gè)設備,至于當前該設備存在與否先且不論,而且這些特殊文件是位于根文件系統上的,在制作文件系統的時(shí)候我們就已經(jīng)建立了這些設備文件,因此通過(guò)操作這些特殊文件,可以實(shí)現與內核進(jìn)行交互。但是devfs文件系統有一些缺點(diǎn),例如:不確定的設備映射,有時(shí)一個(gè)設備映射的設備文件可能不同,例如我的U盤(pán)可能對應sda有可能對應sdb;沒(méi)有足夠的主/輔設備號,當設備過(guò)多的時(shí)候,顯然這會(huì )成為一個(gè)問(wèn)題;/dev目錄下文件太多而且不能表示當前系統上的實(shí)際設備;命名不夠靈活,不能任意指定等等。
二、sysfs
正因為上述這些問(wèn)題的存在,在linux2.6內核以后,引入了一個(gè)新的文件系統sysfs,它掛載于/sys目錄下,跟devfs一樣它也是一個(gè)虛擬文件系統,也是用來(lái)對系統的設備進(jìn)行管理的,它把實(shí)際連接到系統上的設備和總線(xiàn)組織成一個(gè)分級的文件,用戶(hù)空間的程序同樣可以利用這些信息以實(shí)現和內核的交互,該文件系統是當前系統上實(shí)際設備樹(shù)的一個(gè)直觀(guān)反應,它是通過(guò)kobject子系統來(lái)建立這個(gè)信息的,當一個(gè)kobject被創(chuàng )建的時(shí)候,對應的文件和目錄也就被創(chuàng )建了,位于/sys下的相關(guān)目錄下,既然每個(gè)設備在sysfs中都有唯一對應的目錄,那么也就可以被用戶(hù)空間讀寫(xiě)了。用戶(hù)空間的工具udev就是利用了sysfs提供的信息來(lái)實(shí)現所有devfs的功能的,但不同的是udev運行在用戶(hù)空間中,而devfs卻運行在內核空間,而且udev不存在devfs那些先天的缺陷。很顯然,sysfs將是未來(lái)發(fā)展的方向。
The top level sysfs directory looks like:
block/
bus/
class/
devices/
firmware/
net/
fs/

devices/ contains a filesystem representation of the device tree. It maps
directly to the internal kernel device tree, which is a hierarchy of
struct device.

bus/ contains flat directory layout of the various bus types in the
kernel. Each bus's directory contains two subdirectories:
devices/
drivers/
devices/ contains symlinks for each device discovered in the system
that point to the device's directory under root/.

drivers/ contains a directory for each device driver that is loaded
for devices on that particular bus (this assumes that drivers do not
span multiple bus types).

fs/ contains a directory for some filesystems. Currently each
filesystem wanting to export attributes must create its own hierarchy
below fs/ (see ./fuse.txt for an example).

三、udev
udev是一種工具,它能夠根據系統中的硬件設備的狀況動(dòng)態(tài)更新設備文件,包括設備文件的創(chuàng )建,刪除等。設備文件通常放在/dev目錄下,使用udev后,在/dev下面只包含系統中真實(shí)存在的設備。它于硬件平臺無(wú)關(guān)的,位于用戶(hù)空間,需要內核sysfs和tmpfs的支持,sysfs為udev提供設備入口和uevent通道,tmpfs為udev設備文件提供存放空間。


linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>