On Unix-like computer systems, procfs, short for process file system, is a pseudo-file system (pseudo in that it is dynamically generated at boot) used to access process information from the kernel. Unix (officially trademarked as UNIX, sometimes also written as Unix with Small caps) is a computer In computing a process is an instance of a Computer program that is being sequentially executed by a computer system that has the ability to run several computer In Computing, a file system (often also written as filesystem) is a method for storing and organizing Computer files and the data they contain to make In Computer science, the kernel is the central component of most computer Operating systems (OS The file system is often mounted at the /proc directory. In Computing, a directory, catalog, folder or drawer is an entity in a File system, which contains a group of files and/or other directories Because /proc is not a real file system, it consumes no storage space and only a limited amount of memory.
procfs is supported under:
Contents |
The UNIX 8th Edition version of /proc was implemented by Tom J. Solaris is a Unix -based Operating system introduced by Sun Microsystems in 1992 as the successor to SunOS. Linux (commonly pronounced ˈlɪnəks QNX (pronounced either Q-N-X or Q-nix is a commercial Unix-like Real-time operating system, aimed primarily at the Embedded systems market Eight Edition Unix, also known as Version 8 Unix or V8, was a version of the Research Unix Operating system developed and used internally at Killian, who presented a paper titled Processes as Files at USENIX in June 1984. The USENIX Association is the Advanced Computing Technical Association It was designed in order to replace the ptrace system call used for process tracing.
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. Unix System V, commonly abbreviated SysV (and usually pronounced though rarely written as System 5 was one of the versions of the Unix Operating system This kind of procfs supported the creation of ps, but the files could only be accessed with functions read(), write(), and ioctl(). In most Unix-like operating systems the ps program displays the currently-running processes. In computing an ioctl (aɪˈɒktəl or "i-o-control" is part of the user -to- kernel interface of a conventional operating system
Plan 9 implemented a process file system, but went further than V8. Plan 9 from Bell Labs is a Distributed operating system, primarily used for research 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's implementation of /proc was cloned from Plan 9. Note that in FreeBSD procfs is being gradually phased out.
Solaris 2. 6's /proc (finished in 1996) was also a clone from Plan 9.
The /proc implementation of Linux is also a clone of Plan 9. Linux (commonly pronounced ˈlɪnəks Plan 9 from Bell Labs is a Distributed operating system, primarily used for research Under Linux, /proc includes:
/proc/PID, containing information about that process. In Computer science, the kernel is the central component of most computer Operating systems (OS Notably:
/proc/PID/cmdline, which contains the command which originally started the process. /proc/PID/cwd, a symlink to the current working directory of the process. In Computing, a symbolic link (also symlink or soft link) is a special type of file that contains a reference to another In Computing, the working directory of a process is a directory of a hierarchical File system, if any dynamically associated with each process /proc/PID/exe, a symlink to the original executable file, if it still exists (a process may continue running after its original executable has been deleted or replaced). In Computing, an executable (file causes a computer "to perform indicated tasks according to encoded instructions," as opposed to a file that only contains /proc/PID/root, a symlink to the root path as seen by the process. For most processes this will be a link to / unless the process is running in a chroot jail. A chroot on Unix Operating systems is an operation that changes the apparent disk Root directory for the current running process and its children /proc/PID/status, a file containing basic information about a process including its run state and memory usage. /proc/PID/task, a directory containing hard links to any tasks that have been started by this (i. In Computing, a hard link is a directory reference or pointer to a file on a storage volume e. : the parent) process. /proc/PID/maps, the memory map showing which addresses currently visible to that process are mapped to which regions in RAM or to files. /proc/acpi or /proc/apm, which predate sysfs and contain various bits of information about the state of power management. Sysfs is a Virtual file system provided by Linux 26 Sysfs exports information about devices and drivers from the kernel device model to userspace and is also used /proc/bus contains directories representing various buses on the computer, such as input/PCI/USB. The Peripheral Component Interconnect, or PCI Standard (commonly PCI) specifies a Computer bus for attaching peripheral devices to a Computer This has been largely superseded by sysfs under /sys/bus which is far more informative. Sysfs is a Virtual file system provided by Linux 26 Sysfs exports information about devices and drivers from the kernel device model to userspace and is also used /proc/cmdline gives the boot options passed to the kernel. /proc/cpuinfo contains information about the CPU, such as its vendor (and CPU family, model and model names which should allow you to identify the CPU) and its speed (CPU clockspeed), cache size, number of siblings, cores, and CPU flags. The clock rate is the fundamental rate in cycles per second (measured in Hertz) at which a Computer performs its most basic operations such as adding two It contains a value called "bogomips", which is frequently mistaken to measure CPU speed like a benchmark, while it doesn't actually measure any sensible (for end-users) value at all. BogoMips (from " Bogus " and MIPS) is an unscientific measurement of CPU speed made by the Linux kernel when it boots to calibrate an It is just a side-effect of kernel timer calibration and yields highly varying values depending on CPU type, even at equal clock speeds. /proc/crypto is a list of cryptographic modules available. /proc/devices is a list of character and block devices sorted by device ID but giving the major part of the /dev name too. /proc/diskstats gives some information (including device numbers) for each of the logical disk devices. /proc/filesystems is a list of the file systems supported by the kernel at the time of listing. /proc/interrupts, /proc/iomem, /proc/ioports and the directory /proc/irq give some self explanatory details about the devices (physical or logical) using the various system resources. /proc/meminfo contains a summary of how the kernel is managing its memory. /proc/modules is one of the most important files in /proc and contains a list of the kernel modules currently loaded and it gives some indication of dependencies (though sometimes it isn't entirely correct). /proc/mounts is a symlink to self/mounts which contains a list of the currently mounted devices and their mount points (and which file system is in use and what mount options are in use). /proc/net is a directory containing a lot of really useful information about the network stack, in particular ip_conntrack which is the list of existing network connections (particularly useful for tracking routing when iptables FORWARD is used to redirect network connections). iptables is a User space application program that allows a system administrator to configure the tables provided by Xtables (which in turn uses Netfilter /proc/partitions is a list of the devices numbers, their size and /dev names which the kernel has identified as existing partitions (for example if /dev/sda contains a partition table, then /dev/sda1 and others will appear as available partitions). Disk partitioning is the creation of separate divisions of a Hard disk drive using Partition editors Once a disk is divided into several partitions directories and Note that if a partition isn't listed in this file, then a patched version of losetup is around which can essentially mount the partition and connect /dev/loop[n] devices to the various partitions (though it is not certain if these will then appear in /proc/partitions). /proc/scsi gives information about any devices connected via a SCSI or RAID controller/proc/self (ie /proc/PID/ where PID is that of the current process). RAID — which stands for Redundant Array of Inexpensive Disks,or alternatively Redundant Array of Independent Disks (a less specific name and thus now the In Computing, the process identifier (normally referred to as the process ID or just PID) is a number used by some Operating system kernels /proc/slabinfo lists statistics on the caches for frequently used objects in the Linux kernel. /proc/swaps is a list of the active swap partitions, and their various sizes and priority. /proc/sys. Under /proc/sys are directories representing the areas of kernel. The most useful one is /proc/sys/net/ipv4/ip_forward which is a read/writable virtual file containing either a '1' or a '0'. If it is 1 then the ipv4 stack will forward packets not meant for the local host, if it is 0 then it will not. All routing firewalls or tunnels will need to echo 1 > /proc/sys/net/ipv4/ip_forward or they won't route a thing. /proc/sysvipc contains memory sharing and IPC information. Inter-Process Communication ( IPC) is a set of techniques for the exchange of data among two or more threads in one or more processes. /proc/tty contains information about the current terminals; /proc/tty/driver looks to be a list of the different types of tty available each of which is a list of those of each type. /proc/uptime is the length of time the kernel has been running since boot and spent in idle mode (both in seconds). /proc/version contains the Linux kernel version, distribution number, gcc version number (used to build the kernel) and any other pertinent information relating to the version of the kernel currently running. The GNU Compiler Collection (usually shortened to GCC) is a set of Compilers produced for various Programming languages by the GNU Project /proc/version_signature is specific to the Ubuntu distribution, giving only the distribution kernel version number and which type of Ubuntu kernel it is (e. Ubuntu Kubuntu Edubuntu Xubuntu Gobuntu --> Ubuntu g. : generic). 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. "kernel space" redirects here For mathematical definition see Null space. "kernel space" redirects here For mathematical definition see Null space. For example the GNU version of ps operates entirely in user mode, using the procfs to obtain its data. GNU ( pronounced) is a computer Operating system composed entirely of Free software. In most Unix-like operating systems the ps program displays the currently-running processes.
In the Linux 2. Linux is an operating system kernel used by a family of Unix-like Operating systems These are popularly termed Linux operating systems and 6 kernel, much of the non-process related files under /proc were moved to a separate pseudo-file system called sysfs (mounted under /sys). Sysfs is a Virtual file system provided by Linux 26 Sysfs exports information about devices and drivers from the kernel device model to userspace and is also used
It is worth noting that Cobalt boxes also include a few additions to /proc:
/proc/cobalt is a directory containing cobalt specific things like the serial number and the systype (system type). Cobalt Networks was a maker of low-cost Linux -based servers Founded in 1996 in Mountain View California under the name /proc/lcd which is a read/writable file containing the contents of the front panel LCD screen. Echoing text to this file changes that on the front panel. In Linux, /proc/cpuinfo is a pseudo-file containing information about all the CPUs in the system. It contains a number of lines:
processor is a number used by the system to identify each logical CPU. vendor_id is a string used to identify the CPU manufacturer (i. e. : AuthenticAMD or GenuineIntel)cpu_family is a number giving the major version of the CPU, these are as follows:
cpu_family is only an indication of the manufacturing process, not the CPU version [1]; however, they have made a PDF with a complete list of responses to the CPUID command on Intel CPUs available. Here is a rough summation:| CPU family | Model | Stepping | Cache size | Model name | Description |
|---|---|---|---|---|---|
| 3 | 0 | 0 | x | ? | Intel386 DX |
| 3 | 2 | 0 | x | ? | Intel386 SX / CX / EX |
| 3 | 4 | 0/1 | x | ? | Intel386 SL |
| 4 | 0/1 | x | x | ? | Intel486 DX |
| 4 | 2 | x | x | ? | Intel486 SX |
| 4 | 3 | x | x | ? | Intel487/ DX2 / DX2 OverDrive |
| 4 | 4 | x | x | ? | Intel486 SL |
| 4 | 5 | x | x | ? | IntelSX2 |
| 4 | 8 | x | x | ? | IntelDX4/ DX4 Overdrive |
| 5 | 1 | x | x | ? | Pentium/Pentium OverDrive processors (60,66) |
| 5 | 2 | x | x | ? | Pentium/Pentium OverDrive processors (75,90,100,120,133,150,166,200) |
| 5 | 3 | x | x | ? | Pentium OverDrive for 486 based systems |
| 5 | 4 | x | x | ? | Pentium processor with MMX technology (166,200) & OverDrive with MMX for Pentium (75,90,100,120,133) |
| 6 | 1 | x | x | ? | Pentium Pro |
| 6 | 3 | x | x | ? | Pentium II, model 3 and Intel Pentium II OverDrive processor |
| 6 | 5 | x | 0 | ? | Intel Celeron model 5 |
| 6 | 5 | x | 1/2Mb | ? | Pentium II Xeon, model 5 |
| 6 | 5 | x | otherwise | ? | Pentium II, model 5, Pentium II Xeon with L2 Cache 512 kB |
| 6 | 6 | x | x | ? | Celeron model 6 |
| 6 | 7 | x | 1/2Mb | ? | Pentium III Xeon, model 7 |
| 6 | 7 | x | otherwise | ? | Pentium III, model 7 or Pentium III Xeon, model 7 with L2 Cache 512 kB |
| 6 | 8 | x | x | ? | Pentium III, model 8, Pentium III Xeon, model 8 and Intel Celeron model 8 |
| 6 | 9 | x | x | ? | Pentium M processor and Intel Celeron model 9 |
| 6 | 10 | x | x | ? | Pentium III Xeon, model A |
| 6 | 11 | x | x | ? | Pentium III Xeon, model B |
| 6 | 13 | x | x | ? | Intel Pentium M processor, Intel Celeron M model D. All processors are manufactured using 90 nm process |
| 6 | 14 | x | x | ? | Intel Core Duo processor, Intel Core Solo model E. All processors are manufactured using 65 nm process |
| 6 | 15 | x | x | ? | Intel Core2 Duo processor model F. All processors are manufactured using 65 nm process |
| 15 | 0 | x | x | ? | Pentium 4 and Intel Xeon processor . All processors are model 0 and manufactured using the 0. 18 micrometre process |
| 15 | 1 | x | x | ? | Pentium 4, Xeon processor, Intel Xeon processor MP and Intel Celeron. All processors are model 1 and manufactured using the 0. 18 micrometre process |
| 15 | 2 | x | x | ? | Pentium 4, Mobile Intel P4 - M, Xeon processor, Intel Xeon processor MP, Intel Celeron and Mobile Intel Celeron. All processors are model 2 and manufactured using the 0. 13 micrometre process |
| 15 | 3 | x | x | ? | Pentium 4, Xeon processor, Intel Celeron D. All processors are model 3 and manufactured using the 90 nm process |
| 15 | 4 | x | x | ? | Pentium 4, P4 Extreme edition, Pentium D, Xeon processor, Xeon MP and Celeron D. All processors are model 4 and manufactured using the 90 nm process |
| 15 | 6 | x | x | ? | Pentium 4, Pentium Extreme edition, Pentium D, Xeon processor, Xeon MP and Celeron D. All processors are model 6 and manufactured using the 65 nm process |
Operating systems other than Linux do not implement /proc/cpuinfo; the same information can be easily obtained by other means, such as psrinfo(1M) command under Solaris or cpuid(1) under FreeBSD.
/proc/meminfo is a pseudo-file in the proc filesystem of recent versions of the Linux kernel. Linux is an operating system kernel used by a family of Unix-like Operating systems These are popularly termed Linux operating systems and It is accessed to provide information about the current state of the system's computer memory, including information about virtual memory and the cache. Virtual memory is a Computer system technique which gives an application program the impression that it has contiguous working memory while in fact it may be physically In Computer science, a cache (kæʃ like "cash") is a collection of data duplicating original 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. A system monitor is a hardware- or software- based system used to monitor resources and performance in a computer system