Linux下/sys目錄介紹
1. 概述
ramdisk 文件系統基於磁盤模擬技術,實際文件系統是ex2 ex3等。sysfs是一種基於ram文件系統和proc一樣。Sysfs文件系統是一個類似於proc文件系統的特殊文件系統,用於將系統中的設備組織成層次結構,並向用戶模式程序提供詳細的內核數據結構信息。其實,就是在用戶態可以通過對sys文件系統的訪問,來看內核態的一些驅動或者設備等。
mount -t sysfs sysfs /sys
root@RPM /sys$ ls
block class devices fs module
root@RPM /sys$ ls
block class devices fs module
bus dev firmware kernel power
2. /sys/devices!!!
該目錄下是全局設備結構體系,包含所有被發現的注冊在各種總線上的各種物理設備。一般來說,所有的物理設備都按其在總線上的拓撲結構來顯示,但有兩個例外即platform devices和system devices。
platform devices一般是掛在芯片內部的高速或者低速總線上的各種控制器和外設,它們能被CPU直接尋址;
system devices不是外設,而是芯片內部的核心結構,比如CPU,timer等,它們一般沒有相關的驅動,但是會有一些體系結構相關的代碼來配置它們。
/sys/devices是內核對系統中所有設備的分層次表達模型,也是/sys文件系統管理設備的最重要的目錄結構。(為什么?因為其他目錄基本是分類組織鏈接文件,實際指向該目錄內容)。
root@RPM /sys$ ls devices/
platform system virtual
root@RPM /sys$ ls devices/platform/
alarmtimer omap reg-dummy uevent
cpuidle-am33xx.0 omap2-nand.0 sgx usb_time_plug
davinci-pcm-audio power smartreflex
nop_usb_xceiv.0 pruss_uio snd-soc-dummy
nop_usb_xceiv.1 pwm-backlight soc-audio.0
root@RPM /sys$ ls devices/system/
clocksource cpu
3. /sys/dev
該目錄下存放主次設備號文件,其中分成字符設備、塊設備的主次設備號碼(major:minor)組成的文件名,該文件是鏈接文件並且鏈接到其真實的設備(/sys/devices)。
4. /sys/class
該目錄下包含所有注冊在kernel里面的設備類型,這是按照設備功能分類的設備模型,每個設備類型表達具有一種功能的設備。每個設備類型子目錄下都是這種設備類型的各種具體設備的符號鏈接,這些鏈接指向/sys/devices/下的具體設備。 設備類型和設備並沒有一一對應的關系,一個物理設備可能具備多種設備類型;一個設備類型只表達具有一種功能的設備,比如:系統所有輸入設備都會出現在/sys/class/input之下,而不論它們是以何種總線連接到系統的。
root@RPM /sys$ ls class
backlight i2c-dev net spi_master
bdi input power_supply tps65910-pwrkey
block lcd pwm tty
devfreq leds regulator ubi
display mbox rfkill udc
firmware mdio_bus rtc usb_device
gpio mem scsi_device vc
graphics misc scsi_disk video4linux
hwmon mmc_host scsi_host vtconsole
i2c-adapter mtd sound
5. /sys/block
該目錄下的所有子目錄代表着系統中當前被發現的所有塊設備。按照功能來說放置在/sys/class下會更合適,但由於歷史遺留因素而一直存在於/sys /block,但從linux2.6.22內核開始這部分就已經標記為過去時,只有打開了CONFIG_SYSFS_DEPRECATED配置編譯才會有 這個目錄存在,並且其中的內容在從linux2.6.26版本開始已經正式移到了/sys/class/block,舊的接口/sys/block為了向后兼容而保留存在,但其中的內容已經變為了指向它們在/sys/devices/中真實設備的符號鏈接文件。
root@RPM /sys$ ls block/
loop0 loop3 loop6 mtdblock0 mtdblock3 mtdblock6 mtdblock9
loop1 loop4 loop7 mtdblock1 mtdblock4 mtdblock7
loop2 loop5 mmcblk0 mtdblock2 mtdblock5 mtdblock8
6. /sys/bus!!!
該目錄下的每個子目錄都是kernel支持並且已經注冊了的總線類型。這是內核設備按照總線類型分層放置的目錄結構,/sys/devices中的所有設備都是連接於某種總線之下的,bus子目錄下的每種具體總線之下可以找到每個具體設備的符號鏈接,一般來說每個子目錄(總線類型)下包含兩個子目錄,一個是 devices,另一個是drivers;其中devices下是這個總線類型下的所有設備,這些設備都是符號鏈接,它們分別指向真正的設備(/sys/devices/下);而drivers下是所有注冊在這個總線上的驅動,每個driver子目錄下 是一些可以觀察和修改的driver參數。
root@RPM /sys$ ls bus/
i2c mdio_bus platform sdio usb
iio mmc scsi spi
應用1:msp700中計算電池電壓
PipeADC5 = popen("cat /sys/bus/iio/devices/iio\\:device0/in_voltage5_raw", "r");
應用2:改變提醒等級
echo 6 > /proc/sys/kernel/printk;
應用3:msp700中設置背光
echo 20 > /sys/class/backlight/pwm-backlight/brightness;
等價於:
echo 20 > /sys/bus/platform/devices/pwm-backlight/backlight/pwm-backlight/brightness;
7. /sys/fs
【空】
按照設計,該目錄使用來描述系統中所有的文件系統,包括文件系統本身和按照文件系統分類存放的已掛載點。
8. /sys/kernel
root@RPM /sys$ ls kernel/
debug mm profiling uevent_seqnum
fscaps notes uevent_helper
這個目錄下存放的是內核中所有可調整的參數。
9. /sys/firmware
這里是系統加載固件機制的對用戶空間的接口,關於固件有專用於固件加載的一套API,在附錄 LDD3 一書中有關於內核支持固件加載機制的更詳細的介紹;
10. /sys/module
該目錄下有系統中所有的模塊信息,不論這些模塊是以內聯(inlined)方式編譯到內核映像文件中還是編譯為外模塊(.ko文件),都可能出現在/sys/module中。即module目錄下包含了所有的被載入kernel的模塊。
root@RPM /sys$ ls module/
auth_rpcgss lockd rfkill tea5761
block loop scsi_mod tea5767
can mailbox snd tuner_simple
cpuidle mmc_core snd_pcm tuner_xc2028
cryptodev mmcblk snd_pcm_oss ubi
cryptosoft mousedev snd_timer ubifs
d_can mt20xx soundcore usb_storage
d_can_platform mtdoops spurious usbcore
dns_resolver nf_conntrack sunrpc vt
g_mass_storage nf_conntrack_ipv4 tcp_cubic xc4000
hostap nfs tda18271 xc5000
input_polldev ocf tda827x xz_dec
kernel oprofile tda8290
keyboard printk tda9887
11. /sys/power
該目錄是系統中的電源選項,對正在使用的power子系統的描述。這個目錄下有幾個屬性文件可以用於控制整個機器的電源狀態,如可以向其中寫入控制命令讓機器關機/重啟等等。
root@RPM /sys$ ls power/
pm_async pm_test state wakeup_count
---------------------
作者:何妨一下樓
來源:CSDN
原文:https://blog.csdn.net/wade_510/article/details/72084006
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
---------------------
作者:何妨一下樓
來源:CSDN
原文:https://blog.csdn.net/wade_510/article/details/72084006
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
