Procfs (/proc)
The /proc file system is a pseudo file system that provides an
interface to kernel data structures in a form
that looks like files and directories on a file system. This provides an easy mechanism
for viewing and changing various system attributes.
The contents of /proc files are
generally in human-readable text form and can be parsed by shell scripts.
A program can simply open and read from, or write to, the desired file. In most
cases, a process must be privileged to modify the contents of files in the /proc directory.
This file system resides
under the /proc
directory
and contains various files that expose kernel information, allowing processes
to conveniently read that information, and change it in some cases, using
normal file I/O system calls.
The /proc file
system is said to be virtual because the files and subdirectories that it
contains don’t reside on a disk. Instead, the kernel creates them “on the fly”
as processes access them.
Content of /proc filesystem
.
.
For each process on the system, the kernel provides a
corresponding directory named /proc/PID, where PID is the ID
of the process. Within this directory are various files and subdirectories
containing information about that process.
For example,
We
can obtain information about the init process,
which always has the process ID 1, by looking at files under the directory /proc/1.
Major content of Proc filesystem is
Major content of Proc filesystem is
Directory Information exposed by files in this directory
/proc
various
system information
/proc/net Status information about
networking and sockets
/proc/sys/fs Settings related to file systems
/proc/sys/kernel Various general kernel settings
/proc/sys/net Networking and sockets settings
/proc/sys/vm Memory-management settings
This figure will help you ti understand content of procfs
Procfs often accessed by
shell script using “cat” and “echo “. Proc can also be access by c program
using simple file I/O system calls. We
should be take care access permission of proc while accessing them.
We can
create our own Procfs entry by writing linux kernel module, Sample tutorial for this is available here.
Reference: Linux Programming interface
No comments:
Post a Comment