Chapter 5. The proc File System

Chapter 5. The proc File System

5.1. A Virtual File System
5.1.1. Viewing Virtual Files
5.1.2. Changing Virtual Files
5.2. Top-level Files within the proc File System
5.2.1. /proc/apm
5.2.2. /proc/buddyinfo
5.2.3. /proc/cmdline
5.2.4. /proc/cpuinfo
5.2.5. /proc/crypto
5.2.6. /proc/devices
5.2.7. /proc/dma
5.2.8. /proc/execdomains
5.2.9. /proc/fb
5.2.10. /proc/filesystems
5.2.11. /proc/interrupts
5.2.12. /proc/iomem
5.2.13. /proc/ioports
5.2.14. /proc/kcore
5.2.15. /proc/kmsg
5.2.16. /proc/loadavg
5.2.17. /proc/locks
5.2.18. /proc/mdstat
5.2.19. /proc/meminfo
5.2.20. /proc/misc
5.2.21. /proc/modules
5.2.22. /proc/mounts
5.2.23. /proc/mtrr
5.2.24. /proc/partitions
5.2.25. /proc/pci
5.2.26. /proc/slabinfo
5.2.27. /proc/stat
5.2.28. /proc/swaps
5.2.29. /proc/sysrq-trigger
5.2.30. /proc/uptime
5.2.31. /proc/version
5.3. Directories within /proc/
5.3.1. Process Directories
5.3.2. /proc/bus/
5.3.3. /proc/driver/
5.3.4. /proc/fs
5.3.5. /proc/ide/
5.3.6. /proc/irq/
5.3.7. /proc/net/
5.3.8. /proc/scsi/
5.3.9. /proc/sys/
5.3.10. /proc/sysvipc/
5.3.11. /proc/tty/
5.4. Using the sysctl Command
5.5. Additional Resources
5.5.1. Installed Documentation
5.5.2. Useful Websites

The Linux kernel has two primary functions: to control access to physical devices on the computer and to schedule when and how processes interact with these devices. The /proc/ directory — also called the proc file system — contains a hierarchy of special files which represent the current state of the kernel — allowing applications and users to peer into the kernel's view of the system.

Within the /proc/ directory, one can find a wealth of information detailing the system hardware and any processes currently running. In addition, some of the files within the /proc/ directory tree can be manipulated by users and applications to communicate configuration changes to the kernel.

5.1. A Virtual File System

Under Linux, all data are stored as files. Most users are familiar with the two primary types of files: text and binary. But the /proc/ directory contains another type of file called a virtual file. It is for this reason that /proc/ is often referred to as a virtual file system.

These virtual files have unique qualities. Most of them are listed as zero bytes in size and yet when one is viewed, it can contain a large amount of information. In addition, most of the time and date settings on virtual files reflect the current time and date, indicative of the fact they are constantly updated.

Virtual files such as /proc/interrupts, /proc/meminfo, /proc/mounts, and /proc/partitions provide an up-to-the-moment glimpse of the system's hardware. Others, like the /proc/filesystems file and the /proc/sys/ directory provide system configuration information and interfaces.

For organizational purposes, files containing information on a similar topic are grouped into virtual directories and sub-directories. For instance, /proc/ide/ contains information for all physical IDE devices. Likewise, process directories contain information about each running process on the system.