< Back to index
On Unix-like computer systems, procfs, short for process file system, is a pseudo-file system used to access process information from the kernel. The file system is often mounted at the /proc
directory. Because /proc is not a real file system, it consumes no storage space and only a limited amount of memory.
procfs is supported under:
* Solaris
* BSD
* Linux (which extends it to non-process-related data)
History
UNIX 8th Edition
The UNIX 8th Edition version of /proc
was implemented by Tom J. Killian, who presented a paper titled Processes as Files at USENIX in June 1984. It was designed in order to replace the ptrace system call used for process tracing.
SVR4
Roger Faulkner and Ron Gomes ported V8 /proc
to SVR4, and published a paper called The Process File System and Process Model in UNIX System V at USENIX in January 1991. This kind of procfs supported the creation of ps
, but the files could only be accessed with functions read()
, write()
, and ioctl()
.
Plan 9
Plan 9 implemented a process file system, but went further than V8. V8's process file system required operations applied to a single file for all functions related to a process. Plan 9 used separate files to provide those functions, and it made /proc a real part of the file system.
4.4BSD
4.4BSD's implementation of /proc
was cloned from Plan 9.
Solaris
Solaris 2.6's /proc
(finished in 1996) was also a clone from Plan 9.
Linux
The /proc
implementation of Linux is also a clone of Plan 9. Under Linux, /proc
provides information on any running process at /proc/PID, but in addition to that it also includes:
* A symbolic link to the current (traversing) process at /proc/self
* Information on hardware, the kernel, and module configurations
* Access to dynamically-configurable kernel options under /proc/sys
* Information about the system as a whole, such as /proc/meminfo
, which provides memory statistics.
The basic utilities that use /proc under Linux are in the procps package, and they require that /proc is mounted in order to function.
The procfs plays an important role in moving functionality from kernel space to user space. For example the GNU version of ps
operates entirely in user mode, using the procfs to obtain its data.
In Linux kernel 2.6, much of the non-process related files under /proc
were moved to a separate pseudo-file system called sysfs (mounted under /sys
.
/meminfo
/proc/meminfo
is a pseudo-file in the proc filesystem of recent versions of the Linux kernel. It is accessed to provide information about the current state of the system's computer memory, including information about virtual memory and the cache. It is the primary method for user-level programs to obtain information about the system's memory state, and is used in the implementation of several system monitor utilities.
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.