path-proc
Table of Contents
/proc
/proc is a virtual filesystem (procfs) with no backing storage on disk. Every file and directory in it is generated on the fly by the kernel when read. It is the primary interface for reading kernel state and per-process information from userspace, using ordinary open, read, and write calls on what appear to be files.
Each running process gets a directory named after its PID:
/proc/1234/
cmdline command line as a null-delimited string
environ environment variables as null-delimited strings
exe symlink to the executable on disk
fd/ symlinks to each open file descriptor
maps virtual memory map: address ranges, permissions, mappings
status human-readable process state: name, PID, PPID, memory usage
stat machine-readable version of status, used by ps and top
cwd symlink to the current working directory
System-wide information lives at the top level:
/proc/cpuinfo per-core details: model, cache sizes, feature flags /proc/meminfo memory usage: total, free, buffers, cached, swap /proc/uptime seconds since boot and idle time /proc/loadavg 1-, 5-, 15-minute load averages and runqueue depth /proc/mounts currently mounted filesystems (same data as /etc/mtab) /proc/net/ network interface statistics, routing table, sockets /proc/sys/ kernel tunables; many are writable
/proc/sys/ is the most interactive part: writing a value to a file changes a kernel parameter live. sysctl is a wrapper around this interface.
# read the current value of a tunable cat /proc/sys/net/ipv4/ip_forward # enable IP forwarding immediately (does not persist across reboot) echo 1 > /proc/sys/net/ipv4/ip_forward # the sysctl wrapper does the same thing sysctl net.ipv4.ip_forward=1
path-proc.txt ยท Last modified: by 127.0.0.1
