Linux下 sys目录介绍(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值