SYSFS - Linux手册页

时间:2019-08-20 18:01:51  来源:igfitidea点击:

Linux程序员手册 第5部分
更新日期: 2018-04-30

名称

sysfs-用于导出内核对象的文件系统

说明

sysfs文件系统是一个伪文件系统,它提供内核数据结构的接口。 (更准确地说,sysfs中的文件和目录提供了内核内部定义的kobject结构的视图。)sysfs下的文件提供了有关设备,内核模块,文件系统和其他内核组件的信息。

sysfs文件系统通常安装在/ sys中。通常,它是由系统自动安装的,但也可以使用以下命令手动安装:

mount -t sysfs sysfs /sys

sysfs文件系统中的许多文件都是只读的,但是某些文件是可写的,从而允许更改内核变量。为了避免冗余,符号链接被大量用于连接整个文件系统树中的条目。

Files and directories

下表描述了/ sys层次结构下的一些文件和目录。

/sys/block
该子目录为系统上发现的每个块设备包含一个符号链接。符号链接指向/ sys / devices下的相应目录。
/sys/bus
This directory contains one subdirectory for each of the bus types in the kernel. Inside each of these directories are two subdirectories:
devices
此子目录包含指向/ sys / devices中条目的符号链接,这些条目与在此总线上发现的设备相对应。
drivers
该子目录包含此总线上加载的每个设备驱动程序的一个子目录。
/sys/class
该子目录包含已在系统上注册的每个设备类(例如,终端,网络设备,块设备,图形设备,声音设备等)的其他子目录的单层。在这些子目录的每个内部都有该类中每个设备的符号链接。这些符号链接引用/ sys / devices目录中的条目。
/sys/class/net
该目录中的每个条目都是一个符号链接,代表实际或虚拟网络设备之一,该设备在访问该目录的进程的网络名称空间中可见。这些符号链接中的每一个都引用/ sys / devices目录中的条目。
/sys/dev
该目录包含两个子目录block /和char /,分别对应于系统上的block和character设备。在这些子目录的每个内部都有符号链接,其名称格式为major-IDminor-ID,其中ID值对应于特定设备的主要和次要ID。每个符号链接都指向设备的sysfs目录。因此,/ sys / dev中的符号链接提供了一种简单的方法,可以使用对stat(2)(或类似方法)的调用返回的设备ID查找sysfs接口。
以下shell会话显示了/ sys / dev中的示例:
$ stat -c "%t %T" /dev/null
1 3
$ readlink /sys/dev/char/1\:3
../../devices/virtual/mem/null
$ ls -Fd /sys/devices/virtual/mem/null
/sys/devices/virtual/mem/null/
$ ls -d1 /sys/devices/virtual/mem/null/*
/sys/devices/virtual/mem/null/dev
/sys/devices/virtual/mem/null/power/
/sys/devices/virtual/mem/null/subsystem@
/sys/devices/virtual/mem/null/uevent
/sys/devices
这是一个包含内核设备树的文件系统表示的目录,内核树是内核中设备结构的层次结构。
/sys/firmware
该子目录包含用于查看和操作特定于固件的对象和属性的接口。
/sys/fs
该目录包含某些文件系统的子目录。仅当文件系统选择显式创建子目录时,它才会在此处具有子目录。
/sys/fs/cgroup
该目录通常用作tmpfs(5)文件系统的安装点,其中包含cgroups(7)文件系统的安装点。
/sys/fs/smackfs
该目录包含SMACK LSM的配置文件。请参阅内核源文件Documentation / admin-guide / LSM / Smack.rst。
/sys/hypervisor
[待记录]
/sys/kernel
该子目录包含各种文件和子目录,这些文件和子目录提供有关正在运行的内核的信息。
/sys/kernel/cgroup/
有关此目录中文件的信息,请参见cgroups(7)。
/sys/kernel/debug/tracing
内核的ftrace工具使用的tracefs文件系统的安装点。 (有关ftrace的信息,请参见内核源文件Documentation / trace / ftrace.txt。)
/sys/kernel/mm
该子目录包含各种文件和子目录,这些文件和子目录提供有关内核的内存管理子系统的信息。
/sys/kernel/mm/hugepages
该子目录包含一个子目录,用于系统支持的每一个巨大页面。子目录名称表示巨大的页面大小(例如,hugepages-2048kB)。这些子目录中的每个子目录中都有一组文件,可用于查看和更改(在某些情况下)与该巨大页面大小相关的设置。有关更多信息,请参见内核源文件Documentation / admin-guide / mm / hugetlbpage.rst。
/sys/module
This subdirectory contains one subdirectory for each module that is loaded into the kernel. The name of each directory is the name of the module. In each of the subdirectories, there may be following files:
coresize
[待记录]
initsize
[待记录]
initstate
[待记录]
refcnt
[待记录]
srcversion
[待记录]
taint
[待记录]
uevent
[待记录]
version
[待记录]
In each of the subdirectories, there may be following subdirectories:
drivers
[待记录]
holders
[待记录]
notes
[待记录]
parameters
该目录为每个模块参数包含一个文件,每个文件包含对应参数的值。其中一些文件是可写的,允许
sections
该子目录包含有关模块部分信息的文件。此信息主要用于调试。
[To be documented]
/sys/power
[待记录]

版本

sysfs文件系统首次出现在Linux 2.6.0中。

遵循规范

sysfs文件系统特定于Linux。

备注

该手册页不完整,可能不准确,是需要经常更新的一种。

另外参见

proc(5),udev(7)

P.莫切尔。 (2005)。 sysfs文件系统。 2005年渥太华Linux研讨会论文集。

内核源文件Documentation / filesystems / sysfs.txt和Documentation / ABI和Documentation / * / sysfs.txt中的其他文件

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/