Historicamente (anos antes do Linux), /proc
veio primeiro e continha um arquivo por processo. Cada (pseudo) ficheiro forneceu acesso à memória do processo, e. G., A leitura do número de byte 0x1234 do ficheiro deu-lhe o conteúdo do endereço 0x1234 na memória virtual do processo. Essa interface foi usada por comandos como ps
(o visualizador de informações do processo original) e depuradores.
Variantes subseqüentes do Unix copiaram o princípio, mas não os detalhes. Por exemplo, no Linux, há um diretório por processo, contendo várias informações em um formato legível. Por exemplo, /proc/1/cwd
é um link simbólico para o diretório de trabalho atual do processo 1 e /proc/1/cmdline
é um arquivo contendo os argumentos da linha de comando.
Como estava lá, o Linux também usou /proc
para fornecer informações do sistema, como /proc/cpuinfo
contendo informações sobre a CPU (microprocessador) e /proc/bus/usb/
contendo informações sobre dispositivos USB. A documentação de /proc
está na documentação do kernel em filesystems/proc.txt
.
Mais tarde, /sys
(o sistema de arquivos sysfs
) veio fornecer informações sobre o kernel. Por exemplo, há informações sobre dispositivos USB em /sys/bus/usb
(em um formato diferente de /proc/bus/usb
) e informações sobre módulos do kernel (bem como interfaces para controlar alguns módulos) em /sys/modules
.
Observe que /proc/sys
não é a mesma coisa que /sys
. /proc/sys
mostra um conjunto específico de parâmetros do kernel configuráveis em tempo de execução chamado parâmetros sysctl .
Você encontrará mais informações históricas e atuais sobre /proc
na Wikipedia .
¹ ou mais precisamente, o sistema de arquivos proc
, que pode ser montado em outros locais (mas não disponível em /proc
, quebrará muitos programas).