歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux 目錄/sys 解析

linux 目錄/sys 解析

日期:2017/3/3 11:49:31   编辑:Linux技術

今天學習Linux目錄時,遇到/sys這個目錄,老師怎麼講的,不太清楚,先對/sys目錄知識進行一個整理

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

/sys下的子目錄內容/sys/devices該目錄下是全局設備結構體系,包含所有被發現的注冊在各種總線上的各種物理設備。一般來說,所有的物理設備都按其在總線上的拓撲結構來顯示,但有兩個例外,即platform devices和system devices。platform

devices一般是掛在芯片內部的高速或者低速總線上的各種控制器和外設,它們能被CPU直接尋址;system devices不是外設,而是芯片內部的核心結構,比如CPU,timer等,它們一般沒有相關的驅動,但是會有一些體系結構相關的代碼來配置它們。

(sys/devices是內核對系統中所有設備的分層次表達模型,也是/sys文件系統管理設備的最重要的目錄結構)sys/dev該目錄下維護一個按照字符設備和塊設備的主次號碼(major:minor)鏈接到真是設備(/sys/devices)的符號鏈接文件。/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 中真實對象引用的符號鏈接文件;

Copyright © Linux教程網 All Rights Reserved