20160708

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

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

Linux下/sys目录介绍相关推荐

  1. 关于linux下/sys目录

    sysfs 是 Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为 ...

  2. Linux 文件系统(目录介绍)

    Linux 文件系统(目录介绍) Linux 系统大家一定不陌生,学习工作中肯定会和 Linux 打交道.不过谈及 Linux,给人的第一印象可能就是黑乎乎的命令行,乱七八糟的文件夹,甚至安装软件都不 ...

  3. 递归遍历Linux下的目录文件源码实现

    网上搜到的结果大都不令人满意,这里综合了网上的结构,做了小许改动.希望对大家有帮助. 在Linux下的目录结构操作基本上使用opendir,readdir,closedir就够了. #include ...

  4. LINUX下的文件结构介绍

    LINUX下的文件结构介绍 来源:互联网作者:佚名时间:04-15 17:37:28[大 中 小] 了解LINUX下的文件结构,方便学习linux,linux的文件比较特殊,刚开始学习确实不太习惯. ...

  5. Linux中 /boot 目录介绍 【转载】

    Linux中 /boot 目录介绍 转自:点击打开链接 一./boot/目录中的文件和目录 Linux系统在本地启动时,目录/boot/非常重要,其中的文件和目录有: (1)系统Kernel的配置文件 ...

  6. linux 文件大小_整理 | Linux下列出目录内容命令

    IT服务圈儿 有温度.有态度的IT自媒体平台 来源:良许Linux(ID:liangxuxiansheng) 在 Linux 中,有非常多的命令可以让我们用来执行各种各样的任务.当我们想要像使用文件浏 ...

  7. linux下mknod命令介绍

    2019独角兽企业重金招聘Python工程师标准>>> linux下mknod命令介绍 mknod - make block or character special files m ...

  8. linux查询当前目录剩余空间,如何在linux下查看目录的剩余空间大小

    df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Siz ...

  9. Linux 系统相关目录介绍

    Linux 总目录篇 Linux 系统相关目录介绍 /bin 用来贮存用户命令./usr/bin 也被用来贮存用户命令. /sbin 许多系统命令(例如 shutdown)的贮存位置./usr/sbi ...

最新文章

  1. action_mailer_basics
  2. 不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 头信息
  3. 高可用flume-ng搭建
  4. 菜鸟教程之Shell 脚本学习笔记(二)
  5. PPT 下载 | 神策数据张涛:企业服务客户全生命周期运营三步曲客情诊断 解决方案库...
  6. 漂亮表格的CSS定义
  7. 异步通信在生活中的例子_AJAX简单异步通信实例分析
  8. java编译器代码检查_Java编译器可以优化此代码吗?
  9. Doker : Docker 容器与宿主机共享文件
  10. 【翻译】MSIL 教程(一)
  11. HDFS如何检测并删除多余副本块
  12. idea 搜索不到gsonformat_IDEA开发工具插件之GsonFormat
  13. 跨平台最好用的五笔输入法 Rime(鼠须管、小狼毫、中州韵) macOS Linux Windows 安装教程
  14. 路由器桥接(WIFI无线中继)设置及摆放位置图解
  15. drozer 找不到java_自己安装drozer时出现各种问题的解决
  16. java 替换空白字符串
  17. Web应用十大安全漏洞
  18. 平面三角形与三角函数(1):角的度量与换算、三角函数的定义、图形与特征
  19. java 短信_java实现发送手机短信
  20. 【windows10】使用宽带拨号即PPPoE拨号上网

热门文章

  1. 自定义 mrtg 数据
  2. Attention Is All You Need翻译
  3. java6:枚举类和注解
  4. 洞泾智能机器人产业基地_在全球人工智能产业版图中努力树起“G60旗帜”
  5. 从一到无穷大 #4 Lossy compression
  6. GPS天线走线类型及注意事项
  7. 清除盗游戏帐号的密西木马变种(Trojan.PSW.Misc.r)等
  8. 2021年中国中药饮片产业销售规模及重点企业对比分析[图]
  9. 电商优惠券如何设计?
  10. 使用二进制包在生产环境部署 Kubernetes v1.13.2 集群