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
---------------------
作者:何妨一下楼
来源:CSDN
原文:https://blog.csdn.net/wade_510/article/details/72084006
版权声明:本文为博主原创文章,转载请附上博文链接!

linux下目录简介——/sys的更多相关文章

  1. linux下目录简介——/proc

    1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文 ...

  2. linux下目录简介——/SElinux

    一.前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. SELinux 主要由美国 ...

  3. Linux下的tree命令 --Linux下目录树查看

    Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...

  4. windows和linux下目录分隔符兼容问题(换行回车兼容)

    windows和linux下目录分隔符兼容 DIRECTORY_SEPARATOR 换行回车兼容 PHP_EOF

  5. Linux下UDP简介及程序设计

    一.UDP简介 UDP(User Datagram Protocol),用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务.UDP提供了无连接通信,且不对传 ...

  6. liunx学习(一):linux下目录操作大全

    Linux C函数之文件及目录函数(全):http://blog.sina.com.cn/s/blog_695e489c01013ldd.html linux目录操作发:http://www.cnbl ...

  7. 【转】 Linux下目录结构

    装完Linux,首先需要弄清Linux 标准目录结构 / root — 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home — 存储普通用户的个人文件 ftp — 用户 ...

  8. 用.Net如何访问Linux下目录

    很多Windows下的应用需要访问和监控Linux下的目录,本文便介绍如何实现. 只需要搭建配置samba服务,即可将Linux下的目录变得如同Windows下共享可写. 1.服务查询 默认情况下,L ...

  9. linux下udev简介

    一.关于Udev u即user space,dev是device,通过它的名字,我们就可以简单了解到,它是一个和用户态相关的驱动设备管理机制.udev是一个针对2.6内核的文件系统.提供一种基于用户空 ...

随机推荐

  1. 常用MySQL操作(一)

    第二十四次课 常用MySQL操作(一) 目录 一.设置更改root密码 二.连接mysql 三.mysql常用命令 四.mysql用户管理 五.常用sql语句 六.mysql数据库备份恢复 七.扩展 ...

  2. Java EE设计模式(主要简单介绍工厂模式,适配器模式和模板方法模式)

    Java EE设计模式分为三种类型,共23种: 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式 ...

  3. Python机器学习(基础篇---监督学习(支持向量机))

    支持向量机(分类) 支持向量机分类器根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个.我们会发现决定其直线位置的样本并不是所有训练数据,而是其中的两个空间间隔最小的两个不同类别的数据点,而我们 ...

  4. beifen

    Comparison of Models for Predicting the Outcome of Craniocerebral Injury by Using Machine Learning   ...

  5. 《贝贝GO》隐私政策

    隐私政策 贝贝GO尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,贝贝GO会按照本隐私权政策的规定使用和披露您的个人信息.但贝贝GO将以高度的勤勉.审慎义务对待这些信息. ...

  6. windows下端口占用处理工具

    一.通用方法 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,笔者在最近使用tomcat时,老是会遇到这种端口占用的问题,如何知道谁占有了我们需要的端口,很多人都比较头疼,以下是通用方法: ...

  7. javascript 禁用 右键 按键 禁用开发者工具

    var h = window.innerHeight,w=window.innerWidth; //禁用右键 (防止右键查看源代码) window.oncontextmenu=function(){ ...

  8. Java学习笔记(7)

    File类用于处理文件和目录 isDirectory()用于检查当前对象是否目录,isFile()用于检查当前对象是否文件 构造File对象时,传入的路径不一定要求存在,要通过exists()方法判断 ...

  9. Struts2 前台显示问题

    遇到的问题: 查询字段相同值的和的时候用到了sum函数,导致和实体类的不一样,无法取到. 开始的时候的代码. ; 这样的话SUM(o_count)无法显示. 我想把SUM(o_count)设置为实体类 ...

  10. Linux系统安装与初用

    1.结合实验尝试,并查阅资料,总结在实验准备中提出的7个问题. (1).Linux的发行版本.内核版本:二者区别与联系. 核心版本主要是Linux的内核,发行版本是各个公司推出的版本,他们与核心版本是 ...