summaryrefslogtreecommitdiffstats
path: root/man5/proc.5
diff options
context:
space:
mode:
Diffstat (limited to 'man5/proc.5')
-rw-r--r--man5/proc.51462
1 files changed, 1462 insertions, 0 deletions
diff --git a/man5/proc.5 b/man5/proc.5
new file mode 100644
index 000000000..8165ba7d9
--- /dev/null
+++ b/man5/proc.5
@@ -0,0 +1,1462 @@
+.\" Copyright (C) 1994, 1995 by Daniel Quinlan (quinlan@yggdrasil.com)
+.\" with networking additions from Alan Cox (A.Cox@swansea.ac.uk)
+.\" and scsi additions from Michael Neuffer (neuffer@mail.uni-mainz.de)
+.\" and sysctl additions from Andries Brouwer (aeb@cwi.nl)
+.\" and System V IPC (as well as various other) additions from
+.\" Michael Kerrisk (mtk16@ext.canterbury.ac.nz)
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" The GNU General Public License's references to "object code"
+.\" and "executables" are to be interpreted as the output of any
+.\" document formatting or typesetting system, including
+.\" intermediate and printed output.
+.\"
+.\" This manual is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public
+.\" License along with this manual; if not, write to the Free
+.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
+.\" USA.
+.\"
+.\" Modified 1995-05-17 by faith@cs.unc.edu
+.\" Minor changes by aeb and Marty Leisner (leisner@sdsp.mc.xerox.com).
+.\" Modified 1996-04-13, 1996-07-22 by aeb@cwi.nl
+.\" Modified 2001-12-16 by rwhron@earthlink.net
+.\" Modified 2002-07-13 by jbelton@shaw.ca
+.\" Modified 2002-07-22, 2003-05-27, 2004-04-06, 2004-05-25
+.\" by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\"
+.TH PROC 5 2004-05-25 "" "Linux Programmer's Manual"
+.SH NAME
+proc \- process information pseudo-filesystem
+
+.SH DESCRIPTION
+The
+.I proc
+filesystem is a pseudo-filesystem which is used as an interface to
+kernel data structures. It is commonly mounted at
+.IR /proc .
+Most of it is read-only, but some files allow kernel variables to be
+changed.
+.LP
+The following outline gives a quick tour through the /proc hierarchy.
+.PD 1
+.TP
+.I /proc/[number]
+There is a numerical subdirectory for each running process; the
+subdirectory is named by the process ID.
+Each such subdirectory contains the following
+pseudo-files and directories.
+.TP
+.I /proc/[number]/cmdline
+This holds the complete command line for the process, unless the whole
+process has been swapped out or the process is a zombie. In
+either of these latter cases, there is nothing in this file: i.e. a
+read on this file will return 0 characters.
+The command line arguments appear in this file as a set of
+null-separated strings, with a further null byte after the last string.
+.TP
+.I /proc/[number]/cwd
+This is a link to the current working directory of the process. To find
+out
+the cwd of process 20, for instance, you can do this:
+
+.br
+.nf
+.ft CW
+cd /proc/20/cwd; /bin/pwd
+.fi
+.ft
+
+Note that the pwd command is often a shell builtin, and might
+not work properly. In bash, you may use pwd -P.
+.TP
+.I /proc/[number]/environ
+This file contains the environment for the process.
+The entries are separated by null characters,
+and there may be a null character at the end.
+Thus, to print out the environment of process 1, you would do:
+
+.br
+.nf
+.ft CW
+(cat /proc/1/environ; echo) | tr "\\000" "\\n"
+.fi
+.ft P
+
+(For a reason why one should want to do this, see
+.BR lilo (8).)
+.TP
+.I /proc/[number]/exe
+Under Linux 2.2 and later, this file is a symbolic link
+containing the actual path name of the executed command.
+This symbolic link can be dereferenced normally - attempting to open
+it will open the executable. You can even type
+.I /proc/[number]/exe
+to run another copy of the same process as [number].
+
+Under Linux 2.0 and earlier
+.I /proc/[number]/exe
+is a pointer to the binary which was executed,
+and appears as a symbolic link. A
+.BR readlink (2)
+call on this file under Linux 2.0 returns a string in the format:
+
+[device]:inode
+
+For example, [0301]:1502 would be inode 1502 on device major 03 (IDE,
+MFM, etc. drives) minor 01 (first partition on the first drive).
+
+.BR find (1)
+with the -inum option can be used to locate the file.
+.TP
+.I /proc/[number]/fd
+This is a subdirectory containing one entry for each file which the
+process has open, named by its file descriptor, and which is a
+symbolic link to the actual file. Thus, 0 is
+standard input, 1 standard output, 2 standard error, etc.
+
+Programs that will take a filename, but will not take the standard
+input, and which write to a file, but will not send their output to
+standard output, can be effectively foiled this way, assuming that -i
+is the flag designating an input file and -o is the flag designating
+an output file:
+.br
+.nf
+
+\f(CWfoobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...\fR
+
+.fi
+.br
+and you have a working filter.
+.\" The following is not true in my tests (MTK):
+.\" Note that this will not work for
+.\" programs that seek on their files, as the files in the fd directory
+.\" are not seekable.
+
+/proc/self/fd/N is approximately the same as /dev/fd/N in some UNIX
+and UNIX-like systems. Most Linux MAKEDEV scripts symbolically link
+/dev/fd to /proc/self/fd, in fact.
+.TP
+.I /proc/[number]/maps
+A file containing the currently mapped memory regions and their access
+permissions.
+
+The format is:
+
+.nf
+.ft CW
+.in 8n
+address perms offset dev inode pathname
+08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm
+08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm
+08058000-0805b000 rwxp 00000000 00:00 0
+40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so
+40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so
+4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so
+40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so
+4013e000-40142000 rw-p 00000000 00:00 0
+bffff000-c0000000 rwxp 00000000 00:00 0
+.ft
+.fi
+.in
+
+where address is the address space in the process that it occupies,
+perms is a set of permissions:
+
+.nf
+.in +5
+r = read
+w = write
+x = execute
+s = shared
+p = private (copy on write)
+.fi
+.in
+
+offset is the offset into the file/whatever, dev is the device
+(major:minor), and inode is the inode on that device. 0 indicates
+that no inode is associated with the memory region, as the case would
+be with bss.
+
+Under Linux 2.0 there is no field giving pathname.
+.TP
+.I /proc/[number]/mem
+This file can be used to access the pages of a process's memory through
+.BR open (2),
+.BR read (2),
+and
+.BR fseek (3).
+.TP
+.I /proc/[number]/root
+Unix and Linux support the idea of a per-process root of the
+filesystem, set by the
+.BR chroot (2)
+system call. This file is a symbolic link that points to the process's
+root directory, and behaves as exe, fd/*, etc. do.
+.TP
+.I /proc/[number]/stat
+Status information about the process. This is used by
+.BR ps (1).
+It is defined in
+.IR /usr/src/linux/fs/proc/array.c "."
+
+The fields, in order, with their proper
+.BR scanf (3)
+format specifiers, are:
+.RS
+.TP
+\fIpid\fP %d
+The process id.
+.TP
+\fIcomm\fP %s
+The filename of the executable, in parentheses. This is visible
+whether or not the executable is swapped out.
+.TP
+\fIstate\fP %c
+One character from the string "RSDZTW" where R is running, S is
+sleeping in an interruptible wait, D is waiting in uninterruptible
+disk sleep, Z is zombie, T is traced or stopped (on a signal),
+and W is paging.
+.TP
+\fIppid\fP %d
+The PID of the parent.
+.TP
+\fIpgrp\fP %d
+The process group ID of the process.
+.TP
+\fIsession\fP %d
+The session ID of the process.
+.TP
+.\" tty_nr needs better explanation.
+\fItty_nr\fP %d
+The tty the process uses.
+.TP
+\fItpgid\fP %d
+.\" This field and following, up to and including wchan added 0.99.1
+The process group ID of the process which currently owns the tty that
+the process is connected to.
+.TP
+\fIflags\fP %lu
+The kernel flags word of the process. For bit meanings,
+see the PF_* defines in
+.IR <linux/sched.h> .
+Details depend on the kernel version.
+.TP
+\fIminflt\fP %lu
+The number of minor faults the process has made which have not
+required loading a memory page from disk.
+.TP
+\fIcminflt\fP %lu
+The number of minor faults that the process's
+waited-for children have made.
+.TP
+\fImajflt\fP %lu
+The number of major faults the process has made which have
+required loading a memory page from disk.
+.TP
+\fIcmajflt\fP %lu
+The number of major faults that the process's
+waited-for children have made.
+.TP
+\fIutime\fP %lu
+The number of jiffies that this process has been scheduled in user
+mode.
+.TP
+\fIstime\fP %lu
+The number of jiffies that this process has been scheduled in kernel
+mode.
+.TP
+\fIcutime\fP %ld
+The number of jiffies that this process's
+waited-for children have been scheduled in user mode. (See also
+.BR times (2).)
+.TP
+\fIcstime\fP %ld
+The number of jiffies that this process's
+waited-for children have been scheduled in kernel mode.
+.TP
+\fIpriority\fP %ld
+The standard nice value, plus fifteen. The value is never negative in
+the kernel.
+.TP
+\fInice\fP %ld
+The nice value ranges from 19 (nicest) to -19 (not nice to others).
+.TP
+.\" .TP
+.\" \fIcounter\fP %ld
+.\" The current maximum size in jiffies of the process's next timeslice,
+.\" or what is currently left of its current timeslice, if it is the
+.\" currently running process.
+.\" .TP
+.\" \fItimeout\fP %u
+.\" The time in jiffies of the process's next timeout.
+\fI0\fP %ld
+This value is hard coded to 0 as a placeholder for a removed field.
+.TP
+\fIitrealvalue\fP %ld
+The time in jiffies before the next SIGALRM is sent to the process
+due to an interval timer.
+.TP
+\fIstarttime\fP %lu
+The time in jiffies the process started after system boot.
+.TP
+\fIvsize\fP %lu
+Virtual memory size in bytes.
+.TP
+\fIrss\fP %ld
+Resident Set Size: number of pages the process has in real memory,
+minus 3 for administrative purposes. This is just the pages which
+count towards text, data, or stack space. This does not include pages
+which have not been demand-loaded in, or which are swapped out.
+.TP
+\fIrlim\fP %lu
+Current limit in bytes on the rss of the process (usually
+4294967295 on i386).
+.TP
+\fIstartcode\fP %lu
+The address above which program text can run.
+.TP
+\fIendcode\fP %lu
+The address below which program text can run.
+.TP
+\fIstartstack\fP %lu
+The address of the start of the stack.
+.TP
+\fIkstkesp\fP %lu
+The current value of esp (stack pointer), as found in the
+kernel stack page for the process.
+.TP
+\fIkstkeip\fP %lu
+The current EIP (instruction pointer).
+.TP
+\fIsignal\fP %lu
+The bitmap of pending signals (usually 0).
+.TP
+\fIblocked\fP %lu
+The bitmap of blocked signals (usually 0, 2 for shells).
+.TP
+\fIsigignore\fP %lu
+The bitmap of ignored signals.
+.TP
+\fIsigcatch\fP %lu
+The bitmap of catched signals.
+.TP
+\fIwchan\fP %lu
+This is the "channel" in which the process is waiting. It is the
+address of a system call, and can be looked up in a namelist if you
+need a textual name. (If you have an up-to-date /etc/psdatabase, then
+try \fIps -l\fP to see the WCHAN field in action.)
+.TP
+\fInswap\fP %lu
+Number of pages swapped - not maintained.
+.TP
+\fIcnswap\fP %lu
+Cumulative \fInswap\fP for child processes.
+.TP
+\fIexit_signal\fP %d
+Signal to be sent to parent when we die.
+.TP
+\fIprocessor\fP %d
+CPU number last executed on.
+.RE
+.TP
+.I /proc/[number]/statm
+Provides information about memory status in pages. The columns are:
+ size total program size
+ resident resident set size
+ share shared pages
+ trs text (code)
+ drs data/stack
+ lrs library
+ dt dirty pages
+.TP
+.I /proc/[number]/status
+Provides much of the information in
+.I /proc/[number]/stat
+and
+.I /proc/[number]/statm
+in a format that's easier for humans to parse.
+.TP
+.I /proc/apm
+Advanced power management version and battery information
+when CONFIG_APM is defined at kernel compilation time.
+.TP
+.I /proc/bus
+Contains subdirectories for installed busses.
+.TP
+.I /proc/bus/pccard
+Subdirectory for pcmcia devices when CONFIG_PCMCIA is set
+at kernel compilation time.
+.TP
+.I /proc/bus/pccard/drivers
+.TP
+.I /proc/bus/pci
+Contains various bus subdirectories and pseudo-files containing
+information about pci busses, installed devices, and device
+drivers. Some of these files are not ASCII.
+.TP
+.I /proc/bus/pci/devices
+Information about pci devices. They may be accessed through
+.BR lspci (8)
+and
+.BR setpci (8).
+.TP
+.I /proc/cmdline
+Arguments passed to the Linux kernel at boot time. Often done via
+a boot manager such as
+.BR lilo (1).
+.TP
+.I /proc/cpuinfo
+This is a collection of CPU and system architecture dependent items,
+for each supported architecture a different list.
+Two common entries are \fIprocessor\fP which gives CPU number and
+\fIbogomips\fP; a system constant that is calculated
+during kernel initialization. SMP machines have information for
+each CPU.
+.TP
+.I /proc/devices
+Text listing of major numbers and device groups. This can be used by
+MAKEDEV scripts for consistency with the kernel.
+.TP
+.IR /proc/diskstats " (since Linux 2.5.69)"
+This file contains disk I/O statistics for each disk device.
+See the kernel source file
+.I Documentation/iostats.txt
+for further information.
+.TP
+.I /proc/dma
+This is a list of the registered \fIISA\fP DMA (direct memory access)
+channels in use.
+.TP
+.I /proc/driver
+Empty subdirectory.
+.TP
+.I /proc/execdomains
+List of the execution domains (ABI personalities).
+.TP
+.I /proc/fb
+Frame buffer information when CONFIG_FB is defined during kernel
+compilation.
+.TP
+.I /proc/filesystems
+A text listing of the filesystems which were compiled into the kernel.
+Incidentally, this is used by
+.BR mount (1)
+to cycle through different filesystems when none is specified.
+.TP
+.I /proc/fs
+Empty subdirectory.
+.TP
+.I /proc/ide
+This directory
+exists on systems with the ide bus. There are directories for each
+ide channel and attached device. Files include:
+
+.nf
+cache buffer size in KB
+capacity number of sectors
+driver driver version
+geometry physical and logical geometry
+identify in hexidecimal
+media media type
+model manufacturer's model number
+settings drive settings
+smart_thresholds in hexidecimal
+smart_values in hexidecimal
+.fi
+
+The
+.BR hdparm (8)
+utility provides access to this information in a friendly format.
+.TP
+.I /proc/interrupts
+This is used to record the number of interrupts per each IRQ on (at
+least) the i386 architechure. Very easy to read formatting, done in
+ASCII.
+.TP
+.I /proc/iomem
+I/O memory map in Linux 2.4.
+.TP
+.I /proc/ioports
+This is a list of currently registered Input-Output port regions that
+are in use.
+.TP
+.IR /proc/kallsyms " (since Linux 2.5.71)"
+This holds the kernel exported symbol definitions used by the
+.BR modules (X)
+tools to dynamically link and bind loadable modules.
+In Linux 2.5.47 and earlier, a similar file with slightly different syntax
+was named
+.IR ksyms .
+.TP
+.I /proc/kcore
+This file represents the physical memory of the system and is stored
+in the ELF core file format. With this pseudo-file, and an unstripped
+kernel (/usr/src/linux/vmlinux) binary, GDB can be used to
+examine the current state of any kernel data structures.
+
+The total length of the file is the size of physical memory (RAM) plus
+4KB.
+.TP
+.I /proc/kmsg
+This file can be used instead of the
+.BR syslog (2)
+system call to read kernel messages. A process must have superuser
+privileges to read this file, and only one process should read this
+file. This file should not be read if a syslog process is running
+which uses the
+.BR syslog (2)
+system call facility to log kernel messages.
+
+Information in this file is retrieved with the
+.BR dmesg (8)
+program.
+.TP
+.IR /proc/ksyms " (Linux 1.1.23-2.5.47)"
+See
+.IR /proc/kallsyms .
+.TP
+.I /proc/loadavg
+The load average numbers give the number of jobs in the run queue (state
+R)
+or waiting for disk I/O (state D) averaged over 1, 5, and 15 minutes.
+They are the same as the load average numbers given by
+.BR uptime (1)
+and other programs.
+.TP
+.I /proc/locks
+This file shows current file locks
+.RB ( flock "(2) and " fcntl (2))
+and leases
+.RB ( fcntl (2)).
+.TP
+.I /proc/malloc
+This file is only present if CONFIGDEBUGMALLOC was defined during
+compilation.
+.TP
+.I /proc/meminfo
+This is used by
+.BR free (1)
+to report the amount of free and used memory (both physical and swap)
+on the system as well as the shared memory and buffers used by the
+kernel.
+
+It is in the same format as
+.BR free (1),
+except in bytes rather than KB.
+.TP
+.I /proc/mounts
+This is a list of all the file systems currently mounted on the system.
+The format of this file is documented in
+.IR fstab (5).
+.TP
+.I /proc/modules
+A text list of the modules that have been loaded by the system.
+See also
+.BR lsmod (8).
+.TP
+.I /proc/mtrr
+Memory Type Range Registers.
+See
+.I /usr/src/linux/Documentation/mtrr.txt
+for details.
+.TP
+.I /proc/net
+various net pseudo-files, all of which give the status of some part of
+the networking layer. These files contain ASCII structures and are,
+therefore, readable with cat. However, the standard
+.BR netstat (8)
+suite provides much cleaner access to these files.
+.TP
+.I /proc/net/arp
+This holds an ASCII readable dump of the kernel ARP table used for
+address resolutions. It will show both dynamically learned and
+pre-programmed ARP entries. The format is:
+
+.nf
+.ft CW
+.in 8n
+IP address HW type Flags HW address Mask Device
+192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0
+192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0
+.ft
+.fi
+.in
+
+Here 'IP address' is the IPv4 address of the machine and the 'HW type'
+is the hardware type of the address from RFC 826. The flags are the internal
+flags of the ARP structure (as defined in /usr/include/linux/if_arp.h) and
+the 'HW address' is the data link layer mapping for that IP address if
+it is known.
+.TP
+.I /proc/net/dev
+The dev pseudo-file contains network device status information. This gives
+the number of received and sent packets, the number of errors and
+collisions
+and other basic statistics. These are used by the
+.BR ifconfig (8)
+program to report device status. The format is:
+
+.nf
+.ft CW
+.in 1n
+Inter-| Receive | Transmit
+ face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
+ lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
+ eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
+ ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
+ tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
+.in
+.ft
+.fi
+.\" .TP
+.\" .I /proc/net/ipx
+.\" No information.
+.\" .TP
+.\" .I /proc/net/ipx_route
+.\" No information.
+.TP
+.I /proc/net/dev_mcast
+Defined in
+.IR /usr/src/linux/net/core/dev_mcast.c :
+.nf
+.in +5
+indx ifterface_name dmi_u dmi_g dmi_address
+2 eth0 1 0 01005e000001
+3 eth1 1 0 01005e000001
+4 eth2 1 0 01005e000001
+.in
+.fi
+.TP
+.I /proc/net/igmp
+Internet Group Management Protocol. Defined in
+.IR /usr/src/linux/net/core/igmp.c .
+.TP
+.I /proc/net/rarp
+This file uses the same format as the
+.I arp
+file and contains the current reverse mapping database used to provide
+.BR rarp (8)
+reverse address lookup services. If RARP is not configured into the
+kernel,
+this file will not be present.
+.TP
+.I /proc/net/raw
+Holds a dump of the RAW socket table. Much of the information is not of
+use
+apart from debugging. The 'sl' value is the kernel hash slot for the
+socket,
+the 'local address' is the local address and protocol number pair."St" is
+the internal status of the socket. The "tx_queue" and "rx_queue" are the
+outgoing and incoming data queue in terms of kernel memory usage.
+The "tr", "tm->when", and "rexmits" fields are not used by RAW.
+The uid field holds the creator euid of the socket.
+.\" .TP
+.\" .I /proc/net/route
+.\" No information, but looks similar to
+.\" .BR route (8).
+.TP
+.I /proc/net/snmp
+This file holds the ASCII data needed for the IP, ICMP, TCP, and UDP
+management
+information bases for an snmp agent.
+.TP
+.I /proc/net/tcp
+Holds a dump of the TCP socket table. Much of the information is not
+of use apart from debugging. The "sl" value is the kernel hash slot
+for the socket, the "local address" is the local address and port number pair.
+The "remote address" is the remote address and port number pair
+(if connected). 'St' is the internal status of the socket.
+The 'tx_queue' and 'rx_queue' are the
+outgoing and incoming data queue in terms of kernel memory usage.
+The "tr", "tm->when", and "rexmits" fields hold internal information of
+the kernel socket state and are only useful for debugging. The uid field
+holds the creator euid of the socket.
+.TP
+.I /proc/net/udp
+Holds a dump of the UDP socket table. Much of the information is not of
+use apart from debugging. The "sl" value is the kernel hash slot for the
+socket, the "local address" is the local address and port number pair.
+The "remote address" is the remote address and port number pair
+(if connected). "St" is the internal status of the socket.
+The "tx_queue" and "rx_queue" are the outgoing and incoming data queue
+in terms of kernel memory usage. The "tr", "tm->when", and "rexmits" fields
+are not used by UDP. The uid field holds the creator euid of the socket.
+The format is:
+
+.nf
+.ft CW
+.in 1n
+sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid
+ 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
+ 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
+ 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
+.in
+.ft
+.fi
+.TP
+.I /proc/net/unix
+Lists the UNIX domain sockets present within the system and their
+status. The format is:
+.nf
+.sp .5
+.ft CW
+Num RefCount Protocol Flags Type St Path
+ 0: 00000002 00000000 00000000 0001 03
+ 1: 00000001 00000000 00010000 0001 01 /dev/printer
+.ft
+.sp .5
+.fi
+
+Here 'Num' is the kernel table slot number, 'RefCount' is the number
+of users of the socket, 'Protocol' is currently always 0, 'Flags'
+represent the internal kernel flags holding the status of the
+socket. Currently, type is always '1' (Unix domain datagram sockets are
+not yet supported in the kernel). 'St' is the internal state of the
+socket and Path is the bound path (if any) of the socket.
+.TP
+.I /proc/partitions
+Contains major and minor numbers of each partition as well as number
+of blocks and partition name.
+.TP
+.I /proc/pci
+This is a listing of all PCI devices found during kernel initialization
+and their configuration.
+.TP
+.I /proc/scsi
+A directory with the scsi midlevel pseudo-file and various SCSI lowlevel
+driver
+directories, which contain a file for each SCSI host in this system, all
+of
+which give the status of some part of the SCSI IO subsystem.
+These files contain ASCII structures and are, therefore, readable with
+cat.
+
+You can also write to some of the files to reconfigure the subsystem or
+switch
+certain features on or off.
+.TP
+.I /proc/scsi/scsi
+This is a listing of all SCSI devices known to the kernel. The listing is
+similar to the one seen during bootup.
+scsi currently supports only the \fIadd-single-device\fP command which
+allows
+root to add a hotplugged device to the list of known devices.
+
+An
+.B echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi
+will cause
+host scsi1 to scan on SCSI channel 0 for a device on ID 5 LUN 0. If there
+is already a device known on this address or the address is invalid, an
+error will be returned.
+.TP
+.I /proc/scsi/[drivername]
+\fI[drivername]\fP can currently be NCR53c7xx, aha152x, aha1542, aha1740,
+aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic,
+scsi_debug, seagate, t128, u15-24f, ultrastore, or wd7000.
+These directories show up for all drivers that registered at least one
+SCSI
+HBA. Every directory contains one file per registered host. Every
+host-file is named after the number the host was assigned during
+initialization.
+
+Reading these files will usually show driver and host configuration,
+statistics etc.
+
+Writing to these files allows different things on different hosts.
+For example, with the \fIlatency\fP and \fInolatency\fP commands,
+root can switch on and off command latency measurement code in the
+eata_dma driver. With the \fIlockup\fP and \fIunlock\fP commands,
+root can control bus lockups simulated by the scsi_debug driver.
+.TP
+.I /proc/self
+This directory refers to the process accessing the /proc filesystem,
+and is identical to the /proc directory named by the process ID of the
+same process.
+.TP
+.I /proc/slabinfo
+Information about kernel caches. The columns are:
+.nf
+cache-name
+num-active-objs
+total-objs
+object-size
+num-active-slabs
+total-slabs
+num-pages-per-slab
+.fi
+See
+.BR slabinfo (5)
+for details.
+.TP
+.I /proc/stat
+kernel/system statistics. Varies with architecture. Common
+entries include:
+.RS
+.TP
+\fIcpu 3357 0 4313 1362393\fP
+The number of jiffies (1/100ths of a second) that the system spent in
+user mode, user mode with low priority (nice), system mode, and the
+idle task, respectively. The last value should be 100 times the
+second entry in the uptime pseudo-file.
+.TP
+\fIpage 5741 1808\fP
+The number of pages the system paged in and the number that were paged
+out (from disk).
+.TP
+\fIswap 1 0\fP
+The number of swap pages that have been brought in and out.
+.TP
+\fIintr 1462898\fP
+The number of interrupts received from the system boot.
+.TP
+\fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP...
+(major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)
+.TP
+\fIctxt 115315\fP
+The number of context switches that the system underwent.
+.TP
+\fIbtime 769041601\fP
+boot time, in seconds since the epoch (January 1, 1970).
+.TP
+\fIprocesses 86031\fP
+Number of forks since boot.
+.RE
+.TP
+.I /proc/swaps
+Swap areas in use. See also
+.BR swapon (8).
+.TP
+.I /proc/sys
+This directory (present since 1.3.57) contains a number of files
+and subdirectories corresponding to kernel variables.
+These variables can be read and sometimes modified using
+the \fIproc\fP file system, and the
+.BR sysctl (2)
+system call. Presently, there are subdirectories
+.IR abi ", " debug ", " dev ", " fs ", " kernel ", " net ", " proc ", "
+.IR rxrpc ", " sunrpc " and " vm
+that each contain more files and subdirectories.
+.TP
+.I /proc/sys/abi
+This directory may contain files with application binary information.
+On some systems, it is not present.
+.TP
+.I /proc/sys/debug
+This directory may be empty.
+.TP
+.I /proc/sys/dev
+This directory contains device specific information (eg dev/cdrom/info).
+On
+some systems, it may be empty.
+.TP
+.I /proc/sys/fs
+This contains the subdirectory
+.IR binfmt_misc
+and files
+.IR dentry-state ", " dir-notify-enable ", " dquot-nr ", " file-max ", "
+.IR file-nr ", " inode-max ", " inode-nr ", " inode-state ", "
+.IR lease-break-time ", " leases-enable ", " overflowgid ", " overflowuid
+.IR super-max " and " super-nr
+with function fairly clear from the name.
+.TP
+.I /proc/sys/fs/binfmt_misc
+Documentation for files in this directory can in the kernel sources in
+.IR Documentation/binfmt_misc.txt .
+.TP
+.I /proc/sys/fs/dentry-state
+This file contains six numbers,
+.IR nr_dentry ", " nr_unused ", " age_limit " (age in seconds), "
+want_pages
+(pages requested by system) and two dummy values.
+nr_dentry seems to be 0 all the time.
+nr_unused seems to be the number of unused dentries.
+age_limit is the age in seconds after which dcache entries
+can be reclaimed when memory is short and want_pages is
+nonzero when the kernel has called shrink_dcache_pages() and the
+dcache isn't pruned yet.
+.TP
+.I /proc/sys/fs/dir-notify-enable
+This file can be used to disable or enable the
+.I dnotify
+interface described in
+.BR fcntl (2)
+on a system-wide basis.
+A value of 0 in this file disables the interface,
+and a value of 1 enables it.
+.TP
+.I /proc/sys/fs/dquot-max
+This file shows the maximum number of cached disk quota entries.
+On some (2.4) systems, it is not present.
+If the number of free cached disk quota entries is very low and
+you have some awesome number of simultaneous system users,
+you might want to raise the limit.
+.TP
+.I /proc/sys/fs/dquot-nr
+This file shows the number of allocated disk quota
+entries and the number of free disk quota entries.
+.TP
+.I /proc/sys/fs/file-max
+This file defines
+a system-wide limit on the number of open files for all processes.
+(See also
+.BR setrlimit (2),
+which can be used by a process to set the per-process limit,
+.BR RLIMIT_NOFILE ,
+on the number of files it may open.)
+If you get lots
+of error messages about running out of file handles,
+try increasing this value:
+.br
+
+.br
+.nf
+.ft CW
+echo 100000 > /proc/sys/fs/file-max
+.fi
+.ft
+
+The kernel constant
+.I NR_OPEN
+imposes an upper limit on the value that may be placed in
+.IR file-max .
+
+If you increase
+.IR /proc/sys/fs/file-max ","
+be sure to increase
+.I /proc/sys/fs/inode-max
+to 3-4 times the new
+value of
+.IR /proc/sys/fs/file-max ","
+or you will run out of inodes.
+.TP
+.I /proc/sys/fs/file-nr
+This (read-only) file
+gives the number of files presently opened.
+It contains three numbers: The number of allocated
+file handles, the number of free file handles and the maximum
+number of file handles. The kernel allocates file handles dynamically,
+but it
+doesn't free them again. If the number of allocated files is close to the
+
+maximum, you should consider increasing the maximum.
+When the number of free file handles is
+large, you've encountered a peak in your usage of file
+handles and you probably don't need to increase the maximum.
+.TP
+.I /proc/sys/fs/inode-max
+This file contains the maximum number of in-memory inodes.
+On some (2.4) systems, it may not be
+present. This value should be 3-4 times larger
+than the value in file-max, since stdin, stdout and network sockets also
+need an inode to handle them. When you regularly run
+out of inodes, you need to increase this value.
+.TP
+.I /proc/sys/fs/inode-nr
+This file contains the first two values from inode-state.
+.TP
+.I /proc/sys/fs/inode-state
+This file
+contains seven numbers: nr_inodes, nr_free_inodes, preshrink and four
+dummy
+values.
+nr_inodes is the number of inodes the system has
+allocated. This can be slightly more than inode-max because
+Linux allocates them one pageful at a time.
+nr_free_inodes represents the number of free inodes.
+preshrink is nonzero when the nr_inodes > inode-max and the
+system needs to prune the inode list instead of allocating
+more.
+.TP
+.I /proc/sys/fs/lease-break-time
+This file
+specifies the grace period that the kernel grants to a process
+holding a file lease
+.RB ( fcntl (2))
+after it has sent a signal to that process notifying it
+that another process is waiting to open the file.
+If the lease holder does not remove or downgrade the lease within
+this grace period, the kernel forcibly breaks the lease.
+.TP
+.I /proc/sys/fs/leases-enable
+This file can be used to enable or disable file leases
+.RB ( fcntl (2))
+on a system-wide basis.
+If this file contains the value 0, leases are disabled.
+A non-zero value enables leases.
+.TP
+.IR /proc/sys/fs/overflowgid " and " /proc/sys/fs/overflowuid
+These files
+allow you to change the value of the fixed UID and GID.
+The default is 65534.
+Some filesystems only support 16-bit UIDs and GIDs, although in Linux
+UIDs and GIDs are 32 bits. When one of these filesystems is mounted
+with writes enabled, any UID or GID that would exceed 65535 is translated
+to the overflow value before being written to disk.
+.TP
+.I /proc/sys/fs/super-max
+This file
+controls the maximum number of superblocks, and
+thus the maximum number of mounted filesystems the kernel
+can have. You only need to increase super-max if you need to
+mount more filesystems than the current value in super-max
+allows you to.
+.TP
+.I /proc/sys/fs/super-nr
+This file
+contains the number of filesystems currently mounted.
+.TP
+.I /proc/sys/kernel
+This directory contains files
+.IR acct ", " cad_pid ", " cap-bound ", "
+.IR core_pattern ", " core_uses_pid ", "
+.IR ctrl-alt-del ", " dentry-state ", " domainname ", "
+.IR hotplug ", " hostname ", "
+.IR htab-reclaim " (PowerPC only), "
+.IR java-appletviewer " (binfmt_java, obsolete), "
+.IR java-interpreter " (binfmt_java, obsolete), " l2cr " (PowerPC only), "
+.IR modprobe ", " msgmax ", " msgmnb ", "
+.IR msgmni ", " osrelease ", " ostype ", " overflowgid ", " overflowuid ,
+.IR panic ", " panic_on_oops ", " pid_max ", "
+.IR powersave-nap " (PowerPC only), " printk ", " pty ", " random ", "
+.IR real-root-dev ", " reboot-cmd " (SPARC only), " rtsig-max ", "
+.IR rtsig-nr ", " sem ", " sg-big-buff ", "
+.IR shmall ", " shmmax ", " shmmni ", " sysrq ", " tainted ", " threads-max ,
+.IR version " and " zero-paged " (PowerPC only) "
+with function fairly clear from the name.
+.TP
+.I /proc/sys/kernel/acct
+This file
+contains three numbers: highwater, lowwater and frequency.
+If BSD-style process accounting is enabled these values control
+its behaviour. If free space on filesystem where the log lives
+goes below lowwater percent accounting suspends. If free space gets
+above highwater percent accounting resumes. Frequency determines
+how often the kernel checks the amount of free space (value is in
+seconds). Default values are 4, 2 and 30.
+That is, suspend accounting if <= 2% of space is free; resume it
+if >= 4% of space is free; consider information about amount of free space
+valid for 30 seconds.
+.TP
+.I /proc/sys/kernel/cap-bound
+This file holds the value of the kernel
+.IR "capability bounding set"
+(expressed as a signed decimal number).
+This set is ANDed against the capabilities permitted to a process
+during exec.
+.TP
+.I /proc/sys/kernel/core_pattern
+This file
+(new in Linux 2.5) provides finer control over the form of
+a core filename than the obsolete
+.IR /proc/sys/kernel/core_uses_pid
+file described below.
+The name for a core file is controlled by defining a template in
+.IR /proc/sys/kernel/core_pattern .
+The template can contain % specifiers which are substituted
+by the following values when a core file is created:
+.nf
+
+ %% A single % character
+ %p PID of dumped process
+ %u real UID of dumped process
+ %g real GID of dumped process
+ %s number of signal causing dump
+ %t time of dump (secs since 0:00h, 1 Jan 1970)
+ %h hostname (same as the 'nodename'
+ returned by \fBuname\fP(2))
+ %e executable filename
+
+.fi
+A single % at the end of the template is dropped from the
+core filename, as is the combination of a % followed by any
+character other than those listed above.
+All other characters in the template become a literal
+part of the core filename.
+The maximum size of the resulting core filename is 64 bytes.
+The default value in this file is "core".
+For backward compatibility, if
+.I /proc/sys/kernel/core_pattern
+does not include "%p" and
+.I /proc/sys/kernel/core_uses_pid
+is non-zero, then .PID will be appended to the core filename.
+.TP
+.I /proc/sys/kernel/core_uses_pid
+This file
+can be used control the naming of a core dump file on Linux 2.4.
+If this file contains the value 0, then a core dump file is simply named
+.IR core .
+If this file contains a non-zero value, then the core dump file includes
+the process ID in a name of the form
+.IR core.PID .
+.TP
+.I /proc/sys/kernel/ctrl-alt-del
+This file
+controls the handling of Ctrl-Alt-Del from the keyboard.
+When the value in this file is 0, Ctrl-Alt-Del is trapped and
+sent to the
+.BR init (1)
+program to handle a graceful restart.
+When the value is > 0, Linux's reaction to a Vulcan
+Nerve Pinch (tm) will be an immediate reboot, without even
+syncing its dirty buffers.
+Note: when a program (like dosemu) has the keyboard in 'raw'
+mode, the ctrl-alt-del is intercepted by the program before it
+ever reaches the kernel tty layer, and it's up to the program
+to decide what to do with it.
+.TP
+.I /proc/sys/kernel/hotplug
+This file
+contains the path for the hotplug policy agent.
+The default value in this file "/sbin/hotplug".
+.TP
+.IR /proc/sys/kernel/domainname " and " /proc/sys/kernel/hostname
+can be used to set the NIS/YP domainname and the
+hostname of your box in exactly the same way as the commands
+domainname and hostname, i.e.:
+.br
+
+.br
+# echo "darkstar" > /proc/sys/kernel/hostname
+.br
+# echo "mydomain" > /proc/sys/kernel/domainname
+.br
+
+.br
+has the same effect as
+.br
+
+.br
+# hostname "darkstar"
+.br
+# domainname "mydomain"
+.br
+
+.br
+Note, however, that the classic darkstar.frop.org has the
+hostname "darkstar" and DNS (Internet Domain Name Server)
+domainname "frop.org", not to be confused with the NIS (Network
+Information Service) or YP (Yellow Pages) domainname. These two
+domain names are in general different. For a detailed discussion
+see the
+.BR hostname (1)
+man page.
+.TP
+.I /proc/sys/kernel/htab-reclaim
+(PowerPC only) If this file is set to a non-zero value,
+the PowerPC htab
+(see kernel file Documentation/powerpc/ppc_htab.txt) is pruned
+each time the system hits the idle loop.
+.TP
+.I /proc/sys/kernel/l2cr
+(PowerPC only) This file
+contains a flag that controls the L2 cache of G3 processor
+boards. If 0, the cache is disabled. Enabled if nonzero.
+.TP
+.I /proc/sys/kernel/modprobe
+This file
+is described by the kernel source file Documentation/kmod.txt.
+.TP
+.I /proc/sys/kernel/msgmax
+This file defines
+a system-wide limit specifying the maximum number of bytes in
+a single message written on a System V message queue.
+.TP
+.I /proc/sys/kernel/msgmni
+This file defines the system-wide limit on the number of
+message queue identifiers.
+(This file is only present in Linux 2.4 onwards.)
+.TP
+.I /proc/sys/kernel/msgmnb
+This file defines a system-wide paramter used to initialise the
+.I msg_qbytes
+setting for subsequenly created message queues.
+The
+.I msg_qbytes
+setting specifies the maximum number of bytes that may be written to the
+message queue.
+.TP
+.IR /proc/sys/kernel/ostype " and " /proc/sys/kernel/osrelease
+These files
+give substrings of
+.IR /proc/version .
+.TP
+.IR /proc/sys/kernel/overflowgid " and " /proc/sys/kernel/overflowuid
+These files duplicate the files
+.I /proc/sys/fs/overflowgid
+and
+.IR /proc/sys/fs/overflowuid .
+.TP
+.I /proc/sys/kernel/panic
+gives read/write access to the kernel variable
+.IR panic_timeout .
+If this is zero, the kernel will loop on a panic; if nonzero
+it indicates that the kernel should autoreboot after this number
+of seconds. When you use the
+software watchdog device driver, the recommended setting is 60.
+.TP
+.I /proc/sys/kernel/panic_on_oops
+This file (new in Linux 2.5) controls the kernel's behaviour when an oops
+or
+BUG is encountered. If this file contains 0, then the system
+tries to continue operation. If it contains 1, then the system
+delays a few seconds (to give klogd time to record the oops output)
+and then panics.
+If the
+.I /proc/sys/kernel/panic
+file is also non-zero then the machine will be rebooted.
+.TP
+.I /proc/sys/kernel/pid_max
+This file
+(new in Linux 2.5)
+specifies the value at which PIDs wrap around
+(i.e., the value in this file is one greater than the maximum PID).
+The default value for this file, 32768,
+results in the same range of PIDs as on earlier kernels.
+The value in this file can be set to any value up to 2^22
+(PID_MAX_LIMIT, approximately 4 million).
+.TP
+.IR /proc/sys/kernel/powersave-nap " (PowerPC only)"
+This file
+contains a flag. If set, Linux-PPC will use the 'nap' mode of
+powersaving,
+otherwise the 'doze' mode will be used.
+.TP
+.I /proc/sys/kernel/printk
+The four values in this file
+are console_loglevel, default_message_loglevel, minimum_console_level and
+default_console_loglevel.
+These values influence printk() behavior when printing or
+logging error messages. See
+.BR syslog (2)
+for more info on the different loglevels.
+Messages with a higher priority than
+console_loglevel will be printed to the console.
+Messages without an explicit priority
+will be printed with priority default_message_level.
+minimum_console_loglevel is the minimum (highest) value to which
+console_loglevel can be set.
+default_console_loglevel is the default value for console_loglevel.
+.TP
+.IR /proc/sys/kernel/pty " (since Linux 2.6.4)"
+This directory
+contains two files relating to the number of Unix 98
+pseudo-terminals (see
+.BR pts (4))
+on the system.
+.TP
+.I /proc/sys/kernel/pty/max
+This file defines the maximum number of pseudo-terminals.
+.TP
+.I /proc/sys/kernel/pty/nr
+This read-only file
+indicates how many pseudo-terminals are currently in use.
+.TP
+.\" FIXME say more about random
+.I /proc/sys/kernel/random
+This directory
+contains various parameters controlling the operation of the file
+.IR /dev/random .
+.TP
+.I /proc/sys/kernel/real-root-dev
+This file
+is documented in the kernel source file Documentation/initrd.txt.
+.TP
+.IR /proc/sys/kernel/reboot-cmd " (Sparc only) "
+This file seems to be a way to give an argument to the SPARC
+ROM/Flash boot loader. Maybe to tell it what to do after
+rebooting?
+.TP
+.I /proc/sys/kernel/rtsig-max
+This file can be used to tune the maximum number
+of POSIX realtime (queued) signals that can be outstanding
+in the system.
+.TP
+.I /proc/sys/kernel/rtsig-nr
+This file shows the number POSIX realtime signals currently queued.
+.TP
+.IR /proc/sys/kernel/sem " (since Linux 2.4)"
+This file contains 4 numbers defining limits for System V IPC semaphores.
+These fields are, in order:
+.RS
+.IP SEMMSL 8
+The maximum semaphores per semaphore set.
+.IP SEMMNS 8
+A system-wide limit on the number of semaphores in all semaphore sets.
+.IP SEMOPM 8
+The maximum number of operations that may be specified in a
+.BR semop (2)
+call.
+.IP SEMMNI 8
+A system-wide limit on the maximum number of semaphore identifiers.
+.RE
+.TP
+.I /proc/sys/kernel/sg-big-buff
+This file
+shows the size of the generic SCSI device (sg) buffer.
+You can't tune it just yet, but you could change it on
+compile time by editing include/scsi/sg.h and changing
+the value of SG_BIG_BUFF. However, there shouldn't be any reason to
+change
+this value.
+.TP
+.I /proc/sys/kernel/shmall
+This file
+contains the system-wide limit on the total number of pages of
+System V shared memory.
+.TP
+.I /proc/sys/kernel/shmmax
+This file
+can be used to query and set the run time limit
+on the maximum (System V IPC) shared memory segment size that can be
+created.
+Shared memory segments up to 1Gb are now supported in the
+kernel. This value defaults to SHMMAX.
+.TP
+.I /proc/sys/kernel/shmmni
+(available in Linux 2.4 and onwards)
+This file
+specifies the system-wide maximum number of System V shared memory
+segments that can be created.
+.TP
+.I /proc/sys/kernel/version
+contains a string like:
+.br
+
+.br
+#5 Wed Feb 25 21:49:24 MET 1998.TP
+.br
+
+.br
+The '#5' means that
+this is the fifth kernel built from this source base and the
+date behind it indicates the time the kernel was built.
+.TP
+.IR /proc/sys/kernel/zero-paged " (PowerPC only) "
+This file
+contains a flag. When enabled (non-zero), Linux-PPC will pre-zero pages in
+the idle loop, possibly speeding up get_free_pages.
+.TP
+.I /proc/sys/net
+This directory contains networking stuff.
+.TP
+.I /proc/sys/proc
+This directory may be empty.
+.TP
+.I /proc/sys/sunrpc
+This directory supports Sun remote procedure call for network file system
+(NFS). On some systems, it is not present.
+.TP
+.I /proc/sys/vm
+This directory contains files for memory management tuning, buffer and
+cache
+management.
+.TP
+.I /proc/sys/vm/overcommit_memory
+This file contains the kernel virtual memory accounting mode. Values are:
+.br
+0: heuristic overcommit (this is the default)
+.br
+1: always overcommit, never check
+.br
+2: always check, never overcommit
+.br
+In mode 0, calls of
+.BR mmap (2)
+with MAP_NORESERVE set are not checked, and the default check is very weak,
+leading to the risk of getting a process "OOM-killed".
+Under Linux 2.4 any nonzero value implies mode 1.
+In mode 2 (available since Linux 2.6), the total virtual address space
+on the system is limited to (SS + RAM*(r/100)),
+where SS is the size of the swap space, and RAM
+is the size of the physical memory, and r is the contents of the file
+.IR /proc/sys/vm/overcommit_ratio .
+.TP
+.I /proc/sys/vm/overcommit_ratio
+See the description of
+.IR /proc/sys/vm/overcommit_memory .
+.TP
+.I /proc/sysvipc
+Subdirectory containing the pseudo-files
+.IR msg ", " sem " and " shm "."
+These files list the System V Interprocess Communication (IPC) objects
+(respectively: message queues, semaphores, and shared memory)
+that currently exist on the system,
+providing similar information to that available via
+.BR ipcs (1).
+These files have headers and are formatted (one IPC object per line)
+for easy understanding.
+.BR ipc (5)
+provides further background on the information shown by these files.
+.TP
+.I /proc/tty
+Subdirectory containing the psuedo-files and subdirectories for
+tty drivers and line disciplines.
+.TP
+.I /proc/uptime
+This file contains two numbers: the uptime of the system (seconds),
+and the amount of time spent in idle process (seconds).
+.TP
+.I /proc/version
+This string identifies the kernel version that is currently running.
+It includes the contents of /proc/sys/ostype, /proc/sys/osrelease and
+/proc/sys/version. For example:
+.nf
+.in -2
+.ft CW
+Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
+.ft
+.in +2
+.fi
+.TP
+.IR /proc/vmstat " (since Linux 2.6)"
+This file displays various virtual memory statistics.
+
+.RE
+.RE
+.SH "SEE ALSO"
+.BR cat (1),
+.BR find (1),
+.BR free (1),
+.BR mount (1),
+.BR ps (1),
+.BR tr (1),
+.BR uptime (1),
+.BR chroot (2),
+.BR mmap (2),
+.BR readlink (2),
+.BR syslog (2),
+.BR slabinfo (5),
+.BR hier (7),
+.BR arp (8),
+.BR dmesg (8),
+.BR hdparm (8),
+.BR ifconfig (8),
+.BR init (8),
+.BR lsmod (8),
+.BR lspci (8),
+.BR netstat (8),
+.BR procinfo (8),
+.BR route (8)
+.br
+.I /usr/src/linux/Documentation/filesystems/proc.txt
+.SH CAVEATS
+Note that many strings (i.e., the environment and command line) are in
+the internal format, with sub-fields terminated by NUL bytes, so you
+may find that things are more readable if you use \fIod -c\fP or \fItr
+"\\000" "\\n"\fP to read them.
+Alternatively, \fIecho `cat <file>`\fP works well.
+
+This manual page is incomplete, possibly inaccurate, and is the kind
+of thing that needs to be updated very often.
+.SH ACKNOWLEDGEMENTS
+The material on /proc/sys/fs and /proc/sys/kernel is closely based on
+kernel source documentation files written by Rik van Riel.