linux 目录/sys 解析
今天學(xué)習(xí)Linux目錄時(shí),遇到/sys這個(gè)目錄,老師怎么講的,不太清楚,先對(duì)/sys目錄知識(shí)進(jìn)行一個(gè)整理
首先,對(duì)?/sys目錄下的各個(gè)子目錄進(jìn)行具體說明:
| /sys下的子目錄 | 內(nèi)容 |
| /sys/devices | 該目錄下是全局設(shè)備結(jié)構(gòu)體系,包含所有被發(fā)現(xiàn)的注冊(cè)在各種總線上的各種物理設(shè)備。一般來說,所有的物理設(shè)備都按其在總線上的拓?fù)浣Y(jié)構(gòu)來顯示,但有兩個(gè)例外,即platform devices和system devices。platform devices一般是掛在芯片內(nèi)部的高速或者低速總線上的各種控制器和外設(shè),它們能被CPU直接尋址;system devices不是外設(shè),而是芯片內(nèi)部的核心結(jié)構(gòu),比如CPU,timer等,它們一般沒有相關(guān)的驅(qū)動(dòng),但是會(huì)有一些體系結(jié)構(gòu)相關(guān)的代碼來配置它們。 (sys/devices是內(nèi)核對(duì)系統(tǒng)中所有設(shè)備的分層次表達(dá)模型,也是/sys文件系統(tǒng)管理設(shè)備的最重要的目錄結(jié)構(gòu)) |
| sys/dev | 該目錄下維護(hù)一個(gè)按照字符設(shè)備和塊設(shè)備的主次號(hào)碼(major:minor)鏈接到真是設(shè)備(/sys/devices)的符號(hào)鏈接文件。 |
| /sys/class | 該目錄下包含所有注冊(cè)在kernel里面的設(shè)備類型,這是按照設(shè)備功能分類的設(shè)備模型,每個(gè)設(shè)備類型表達(dá)具有一種功能的設(shè)備。每個(gè)設(shè)備類型子目錄下都是這種哦哦那個(gè)設(shè)備類型的各種具體設(shè)備的符號(hào)鏈接,這些鏈接指向/sys/devices/name下的具體設(shè)備。設(shè)備類型和設(shè)備并沒有一一對(duì)應(yīng)的關(guān)系,一個(gè)物理設(shè)備可能具備多種設(shè)備類型;一個(gè)設(shè)備類型只表達(dá)具有一種功能的設(shè)備,比如:系統(tǒng)所有輸入設(shè)備都會(huì)出現(xiàn)在/sys/class/input之下,而不論它們是以何種總線連接到系統(tǒng)的。(/sys/class也是構(gòu)成linux統(tǒng)一設(shè)備模型的一部分) |
| /sys/block | 該目錄下的所有子目錄代表著系統(tǒng)中當(dāng)前被發(fā)現(xiàn)的所有塊設(shè)備。按照功能來說防止在/sys/class下會(huì)更合適,但由于歷史遺留因素而一直存在于/sys/block,但從linux2.6.22內(nèi)核開始這部分就已經(jīng)標(biāo)記為過去時(shí),只有打開了CONFIG_SYSFS_DEPRECATED配置編譯才會(huì)有這個(gè)目錄存在,并且其中的內(nèi)容在從linux2.6.26版本開始已經(jīng)正式移到了/sys/class/block,舊的接口/sys/block為了向后兼容而保留存在,但其中的內(nèi)容已經(jīng)變?yōu)榱酥赶蛩鼈冊(cè)?span style="font-family:'Liberation Serif',serif">/sys/devices/中真實(shí)設(shè)備的符號(hào)鏈接文件。 |
| /sys/bus | 該目錄下的每個(gè)子目錄都是kernel支持并且已經(jīng)注冊(cè)了的總線類型。這是內(nèi)核設(shè)備按照總線類型分層放置的目錄結(jié)構(gòu),/sys/devices中的所有設(shè)備都是連接于某種總線之下的,bus子目錄下的每種具體總線之下可以找到每個(gè)具體設(shè)備的符號(hào)鏈接, 一般來說每個(gè)子目錄(總線類型)下包含兩個(gè)子目錄,一個(gè)是devices,另一個(gè)是drivers;其中devices下是這個(gè)總線類型下的所有設(shè)備,這些設(shè)備都是符號(hào)鏈接,它們分別指向真正的設(shè)備(/sys/devices/name/下);而drivers下是所有注冊(cè)在這個(gè)總線上的驅(qū)動(dòng),每個(gè)driver子目錄下 是一些可以觀察和修改的driver參數(shù)。 (它也是構(gòu)成linux統(tǒng)一設(shè)備模型的一部分) |
| /sys/fs | 按照設(shè)計(jì),該目錄使用來描述系統(tǒng)中所有的文件系統(tǒng),包括文件系統(tǒng)本身和按照文件系統(tǒng)分類存放的已掛載點(diǎn)。 |
| /sys/kernel | 這個(gè)目錄下存放的是內(nèi)核中所有可調(diào)整的參數(shù) |
| /sys/firmware | 該目錄下包含對(duì)固件對(duì)象(firmware object)和屬性進(jìn)行操作和觀察的接口,即這里是系統(tǒng)加載固件機(jī)制的對(duì)用戶空間的接口.(關(guān)于固件有專用于固件加載的一套API) |
| /sys/hypervisor | 該目錄是與虛擬化Xen相關(guān)的裝置。(Xen是一個(gè)開放源代碼的虛擬機(jī)監(jiān)視器) |
| /sys/module | 該目錄下有系統(tǒng)中所有的模塊信息,不論這些模塊是以內(nèi)聯(lián)(inlined)方式編譯到內(nèi)核映像文件中還是編譯為外模塊(.ko文件),都可能出現(xiàn)在/sys/module中。即module目錄下包含了所有的被載入kernel的模塊。 |
| /sys/power | 該目錄是系統(tǒng)中的電源選項(xiàng),對(duì)正在使用的power子系統(tǒng)的描述。這個(gè)目錄下有幾個(gè)屬性文件可以用于控制整個(gè)機(jī)器的電源狀態(tài),如可以向其中寫入控制命令讓機(jī)器關(guān)機(jī)/重啟等等。 |
可以看到?sys 下的目錄結(jié)構(gòu)是經(jīng)過精心設(shè)計(jì)的:在/sys/devices 下是所有設(shè)備的真實(shí)對(duì)象,包括如視頻卡和以太網(wǎng)卡等真實(shí)的設(shè)備,也包括ACPI 等不那么顯而易見的真實(shí)設(shè)備、還有tty, bonding 等純粹虛擬的設(shè)備;在其它目錄如 class, bus 等中則在分類的目錄中含有大量對(duì) devices 中真實(shí)對(duì)象引用的符號(hào)鏈接文件;
總結(jié)
以上是生活随笔為你收集整理的linux 目录/sys 解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arduino实验十二 利用雨滴传感器检
- 下一篇: spring mvc 入门配置