Implemented by the Process Manager component of procnto, the /proc virtual filesystem lets you access and control every process and thread running within the system.
The /proc filesystem manifests each process currently running on the system as a directory whose name is the numerical process ID (decimal) of the process. Inside this directory, you'll find a file called as ("address space") that contains the process's entire memory space. Threads are accessible through the as file created for the process; you can select a thread via devctl() calls. You can use the following standard functions to access the /proc filesystem:
Function | Purpose |
---|---|
open() | Establish a file descriptor to a process |
read() | Read data from the process's address space |
write() | Write data to the process's address space |
stat() | Return struct stat information |
lseek() | Establish a position within the process's address space for further operations |
devctl() | Manipulate a process or thread |
close() | Release a file descriptor |
Ancillary functions (such as readdir() , opendir() , and so on) are supported on the directory /proc itself — this aids in implementing commands such as ls .