linux 目錄/sys 解析

今天搞樹莓派,遇到/sys這個目錄,不太清楚,先對/sys目錄知識進行一個整理linux

首先,對 /sys目錄下的各個子目錄進行具體說明:spa

/sys下的子目錄開放源代碼

內容設計

 

 

 

 

/sys/devicesorm

該目錄下是全局設備結構體系,包含全部被發現的註冊在各類總線上的各類物理設備。通常來講,全部的物理設備都按其在總線上的拓撲結構來顯示,但有兩個例外,即platform devices和system devices。platform devices通常是掛在芯片內部的高速或者低速總線上的各類控制器和外設,它們能被CPU直接尋址;system devices不是外設,而是芯片內部的核心結構,好比CPU,timer等,它們通常沒有相關的驅動,可是會有一些體系結構相關的代碼來配置它們。視頻

(sys/devices是內核對系統中全部設備的分層次表達模型,也是/sys文件系統管理設備的最重要的目錄結構)xml

 

sys/dev對象

該目錄下維護一個按照字符設備和塊設備的主次號碼(major:minor)連接到真是設備(/sys/devices)的符號連接文件。blog

 

 

 

/sys/class接口

該目錄下包含全部註冊在kernel裏面的設備類型,這是按照設備功能分類的設備模型,每一個設備類型表達具備一種功能的設備。每一個設備類型子目錄下都是這種哦哦那個設備類型的各類具體設備的符號連接,這些連接指向/sys/devices/name下的具體設備。設備類型和設備並無一一對應的關係,一個物理設備可能具有多種設備類型;一個設備類型只表達具備一種功能的設備,好比:系統全部輸入設備都會出如今/sys/class/input之下,而不論它們是以何種總線鏈接到系統的。(/sys/class也是構成linux統一設備模型的一部分)

 

 

 

/sys/block

該目錄下的全部子目錄表明着系統中當前被發現的全部塊設備。按照功能來講防止在/sys/class下會更合適,但因爲歷史遺留因素而一直存在於/sys/block,但從linux2.6.22內核開始這部分就已經標記爲過去時,只有打開了CONFIG_SYSFS_DEPRECATED配置編譯纔會有這個目錄存在,而且其中的內容在從linux2.6.26版本開始已經正式移到了/sys/class/block,舊的接口/sys/block爲了向後兼容而保留存在,但其中的內容已經變爲了指向它們在/sys/devices/中真實設備的符號連接文件。

 

 

 

 

/sys/bus

該目錄下的每一個子目錄都是kernel支持而且已經註冊了的總線類型。這是內核設備按照總線類型分層放置的目錄結構,/sys/devices中的全部設備都是鏈接於某種總線之下的,bus子目錄下的每種具體總線之下能夠找到每一個具體設備的符號連接,

通常來講每一個子目錄(總線類型)下包含兩個子目錄,一個是devices,另外一個是drivers;其中devices下是這個總線類型下的全部設備,這些設備都是符號連接,它們分別指向真正的設備(/sys/devices/name/下);而drivers下是全部註冊在這個總線上的驅動,每一個driver子目錄下 是一些能夠觀察和修改的driver參數。

(它也是構成linux統一設備模型的一部分)

/sys/fs

按照設計,該目錄使用來描述系統中全部的文件系統,包括文件系統自己和按照文件系統分類存放的已掛載點。

/sys/kernel

這個目錄下存放的是內核中全部可調整的參數

/sys/firmware

該目錄下包含對固件對象(firmware object)和屬性進行操做和觀察的接口,即這裏是系統加載固件機制的對用戶空間的接口.(關於固件有專用於固件加載的一套API)

/sys/hypervisor

該目錄是與虛擬化Xen相關的裝置。(Xen是一個開放源代碼的虛擬機監視器)

 

/sys/module

該目錄下有系統中全部的模塊信息,不論這些模塊是之內聯(inlined)方式編譯到內核映像文件中仍是編譯爲外模塊(.ko文件),均可能出如今/sys/module中。即module目錄下包含了全部的被載入kernel的模塊。

 

/sys/power

該目錄是系統中的電源選項,對正在使用的power子系統的描述。這個目錄下有幾個屬性文件能夠用於控制整個機器的電源狀態,如能夠向其中寫入控制命令讓機器關機/重啓等等。

 

  能夠看到 sys 下的目錄結構是通過精心設計的:在/sys/devices 下是全部設備的真實對象,包括如視頻卡和以太網卡等真實的設備,也包括ACPI 等不那麼顯而易見的真實設備、還有tty, bonding 等純粹虛擬的設備;在其它目錄如 class, bus 等中則在分類的目錄中含有大量對 devices 中真實對象引用的符號連接文件;

相關文章
相關標籤/搜索