/proc
é um ponto de montagem para procfs
(tipo de tmpfs
, que vive na memória), que é uma interface para a estrutura de dados interna do kernel. Tudo o que você vê em /proc
é diretamente preenchido pelo Linux e também mantido pelo próprio kernel.
/proc/self
é um link simbólico para o diretório /proc/<PID>
, em que <PID>
é o ID do processo que acessa /proc
nesse mesmo instante. Então, enquanto em bash
se você fizer cd /proc/self
, você será cd
-id no /proc/<PID>/
, onde <PID>
é o PID para essa instância de bash
, enquanto se algum outro processo, digamos para cat
:
$ cat /proc/self/comm
cat
Você absolutamente não deve alterar nada em /proc
, exceto se o kernel fornecer alguma interface para alterar os valores. Por exemplo, o kernel fornece a interface /proc/sys/
para alterar os parâmetros do kernel no tempo de execução, embora você deva usar principalmente sysctl
para alterar valores em /proc/sys/
em vez de editar diretamente qualquer arquivo. O manuseio incorreto da estrutura de dados interna do Kernel resultaria em um sistema inutilizável ou até mesmo falha no sistema.