The sysfs filesystem is a special filesystem similar to /proc that is usually mounted on the /sys directory. The /proc filesystem was the first special filesystem designed to allow user mode applications to access kernel internal data structures. The /sysfs filesystem has essentially the same objective, but it provides additional information on kernel data structures;
Furthermore, /sysfs is organized in a more structured way than /proc. It is designed to handle the device and driver specific options that have previously resided in /proc/, and encompass the dynamic device addition previously offered by devfs.
sysfs /sys directories
A goal of the sysfs filesystem is to expose the hierarchical relationships among the components of the device driver model. the related top level directories of this filesystem are:
The /block/ directory
This directory contains directories for each of the block devices on the system. These are mostly disk type devices such as real DASD, loopback devices, and software raid block devices.
The /devices/ directory
All hardware devices recognized by the kernel, organized according to the bus in which they are connected. Its subdirectories represent all the subchannels detected by the Linux kernel. Subchannel directories are named in the form 0.0.nnnn where nnnn is the subchannel number in hex between 0000 and ffff. Subchannel directories in turn contain status files and another subdirectory which represents the actual device. The device directory is named 0.0.xxxx where xxxx is the unit address for the device. The /devices/ directory also contains status information as well as configuration options for the device.
The /bus/ directory
The buses in the system, which host the devices.
The /class/ directory
The types of devices in the system such as ttys, SCSI tape drives, network devices, and other miscellaneous devices and so on. The same class may include devices hosted by different buses and driven by different drivers.
The /module/ directory
The device drivers registered in the kernel.
The /power/ directory
Files to handle the power states of some hardware devices.
The /firmware/ directory
Files to handle the firmware of some hardware devices.