summaryrefslogtreecommitdiffstats
path: root/man5/sysfs.5
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--man5/sysfs.5275
1 files changed, 275 insertions, 0 deletions
diff --git a/man5/sysfs.5 b/man5/sysfs.5
new file mode 100644
index 0000000..2edd582
--- /dev/null
+++ b/man5/sysfs.5
@@ -0,0 +1,275 @@
+.\" Copyright (c) 2017 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH sysfs 5 2023-03-30 "Linux man-pages 6.05.01"
+.SH NAME
+sysfs \- a filesystem for exporting kernel objects
+.SH DESCRIPTION
+The
+.B sysfs
+filesystem is a pseudo-filesystem which provides an interface to
+kernel data structures.
+(More precisely, the files and directories in
+.B sysfs
+provide a view of the
+.I kobject
+structures defined internally within the kernel.)
+The files under
+.B sysfs
+provide information about devices, kernel modules, filesystems,
+and other kernel components.
+.PP
+The
+.B sysfs
+filesystem is commonly mounted at
+.IR /sys .
+Typically, it is mounted automatically by the system,
+but it can also be mounted manually using a command such as:
+.PP
+.in +4n
+.EX
+mount \-t sysfs sysfs /sys
+.EE
+.in
+.PP
+Many of the files in the
+.B sysfs
+filesystem are read-only,
+but some files are writable, allowing kernel variables to be changed.
+To avoid redundancy,
+symbolic links are heavily used to connect entries across the filesystem tree.
+.\"
+.SS Files and directories
+The following list describes some of the files and directories under the
+.I /sys
+hierarchy.
+.TP
+.I /sys/block
+This subdirectory contains one symbolic link for each block device
+that has been discovered on the system.
+The symbolic links point to corresponding directories under
+.IR /sys/devices .
+.TP
+.I /sys/bus
+This directory contains one subdirectory for each of the bus types
+in the kernel.
+Inside each of these directories are two subdirectories:
+.RS
+.TP
+.I devices
+This subdirectory contains symbolic links to entries in
+.I /sys/devices
+that correspond to the devices discovered on this bus.
+.TP
+.I drivers
+This subdirectory contains one subdirectory for each device driver
+that is loaded on this bus.
+.RE
+.TP
+.I /sys/class
+This subdirectory contains a single layer of further subdirectories
+for each of the device classes that have been registered on the system
+(e.g., terminals, network devices, block devices, graphics devices,
+sound devices, and so on).
+Inside each of these subdirectories are symbolic links for each of the
+devices in this class.
+These symbolic links refer to entries in the
+.I /sys/devices
+directory.
+.TP
+.I /sys/class/net
+Each of the entries in this directory is a symbolic link
+representing one of the real or virtual networking devices
+that are visible in the network namespace of the process
+that is accessing the directory.
+Each of these symbolic links refers to entries in the
+.I /sys/devices
+directory.
+.TP
+.I /sys/dev
+This directory contains two subdirectories
+.I block/
+and
+.IR char/ ,
+corresponding, respectively,
+to the block and character devices on the system.
+Inside each of these subdirectories are symbolic links with names of the form
+.IR major-ID : minor-ID ,
+where the ID values correspond to the major and minor ID of a specific device.
+Each symbolic link points to the
+.B sysfs
+directory for a device.
+The symbolic links inside
+.I /sys/dev
+thus provide an easy way to look up the
+.B sysfs
+interface using the device IDs returned by a call to
+.BR stat (2)
+(or similar).
+.IP
+The following shell session shows an example from
+.IR /sys/dev :
+.IP
+.in +4n
+.EX
+$ \fBstat \-c "%t %T" /dev/null\fP
+1 3
+$ \fBreadlink /sys/dev/char/1\e:3\fP
+\&../../devices/virtual/mem/null
+$ \fBls \-Fd /sys/devices/virtual/mem/null\fP
+/sys/devices/virtual/mem/null/
+$ \fBls \-d1 /sys/devices/virtual/mem/null/*\fP
+/sys/devices/virtual/mem/null/dev
+/sys/devices/virtual/mem/null/power/
+/sys/devices/virtual/mem/null/subsystem@
+/sys/devices/virtual/mem/null/uevent
+.EE
+.in
+.TP
+.I /sys/devices
+This is a directory that contains a filesystem representation of
+the kernel device tree,
+which is a hierarchy of
+.I device
+structures within the kernel.
+.TP
+.I /sys/firmware
+This subdirectory contains interfaces for viewing and manipulating
+firmware-specific objects and attributes.
+.TP
+.I /sys/fs
+This directory contains subdirectories for some filesystems.
+A filesystem will have a subdirectory here only if it chose
+to explicitly create the subdirectory.
+.TP
+.I /sys/fs/cgroup
+This directory conventionally is used as a mount point for a
+.BR tmpfs (5)
+filesystem containing mount points for
+.BR cgroups (7)
+filesystems.
+.TP
+.I /sys/fs/smackfs
+The directory contains configuration files for the SMACK LSM.
+See the kernel source file
+.IR Documentation/admin\-guide/LSM/Smack.rst .
+.TP
+.I /sys/hypervisor
+[To be documented]
+.TP
+.I /sys/kernel
+This subdirectory contains various files and subdirectories that provide
+information about the running kernel.
+.TP
+.I /sys/kernel/cgroup/
+For information about the files in this directory, see
+.BR cgroups (7).
+.TP
+.I /sys/kernel/debug/tracing
+Mount point for the
+.I tracefs
+filesystem used by the kernel's
+.I ftrace
+facility.
+(For information on
+.IR ftrace ,
+see the kernel source file
+.IR Documentation/trace/ftrace.txt .)
+.TP
+.I /sys/kernel/mm
+This subdirectory contains various files and subdirectories that provide
+information about the kernel's memory management subsystem.
+.TP
+.I /sys/kernel/mm/hugepages
+This subdirectory contains one subdirectory for each of the
+huge page sizes that the system supports.
+The subdirectory name indicates the huge page size (e.g.,
+.IR hugepages\-2048kB ).
+Within each of these subdirectories is a set of files
+that can be used to view and (in some cases) change settings
+associated with that huge page size.
+For further information, see the kernel source file
+.IR Documentation/admin\-guide/mm/hugetlbpage.rst .
+.TP
+.I /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:
+.RS
+.TP
+.I coresize
+[to be documented]
+.TP
+.I initsize
+[to be documented]
+.TP
+.I initstate
+[to be documented]
+.TP
+.I refcnt
+[to be documented]
+.TP
+.I srcversion
+[to be documented]
+.TP
+.I taint
+[to be documented]
+.TP
+.I uevent
+[to be documented]
+.TP
+.I version
+[to be documented]
+.RE
+.IP
+In each of the subdirectories, there may be following subdirectories:
+.RS
+.TP
+.I drivers
+[To be documented]
+.TP
+.I holders
+[To be documented]
+.TP
+.I notes
+[To be documented]
+.TP
+.I parameters
+This directory contains one file for each module parameter,
+with each file containing the value of the corresponding parameter.
+Some of these files are writable, allowing the
+.TP
+.I sections
+This subdirectories contains files with information about module sections.
+This information is mainly used for debugging.
+.TP
+.I
+[To be documented]
+.RE
+.TP
+.I /sys/power
+[To be documented]
+.SH STANDARDS
+Linux.
+.SH HISTORY
+Linux 2.6.0.
+.SH NOTES
+This manual page is incomplete, possibly inaccurate, and is the kind
+of thing that needs to be updated very often.
+.SH SEE ALSO
+.BR proc (5),
+.BR udev (7)
+.PP
+P.\& Mochel. (2005).
+.IR "The sysfs filesystem" .
+Proceedings of the 2005 Ottawa Linux Symposium.
+.\" https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf
+.PP
+The kernel source file
+.I Documentation/filesystems/sysfs.txt
+and various other files in
+.I Documentation/ABI
+and
+.I Documentation/*/sysfs.txt