Linux: proc/sys/kernel vs /sys/kernel

I know that in a typical Linux system, both /proc, and /sys are virtual file structures with pseudo files, used to communicate with the kernel, but what is the difference between /proc/sys/kernel, and /sys/kernel?

For instance, take /sys/kernel/uevent_seqnum. I'm sure this is a highly esoteric option that no one should change, but even so, what is it, and what does it do?

If there's an official or centralized man page for the stuff in /sys/kernel, (like man 5 proc for proc, for example), then citations from those sources would be appreciated and preferable.


Essentially /proc and /sys are the same.

sysfs was added in kernel 2.5 or 2.6 due to clutter in procfs

The procfs was only meant to hold process information. eventually everything started getting mixed into proc and it created a twisty maze with device data stuck in different spots all over the place. Meanwhile, sysfs was implemented with the objective of segmenting device data from procfs.

Specifically, /sys maintains more detailed (position of nodes actually represents the device hierarchy by subsystem) device process information. For each object in the driver model, a directory is created. The device file structure being:

/sys/devices  - devices by physical layout
/sys/bus      - symbolic links to devices
/sys/block    - devices by block
/sys/class    - devices by class

On your local system you might find man page at man sysfs and information about modifying kernel parameters in /proc/sys with man sysctl

If you want even more information about /sys, you might want to view the Linux sysfs filesystem whitepaper on kernel.org [pdf] and Documentation/sysfs.txt in the kernel source.