Os /proc
arquivos - ou melhor,
pseudo-arquivos - são uma interface de dados entre os processos do usuário e o kernel.
Quando um processo (usuário) abre um arquivo /proc
e lê a partir dele,
o kernel fornece os dados. Então, sim, existe uma rotina .c
que gera o diskstats
data - mas faz parte do kernel.
Alguns dos dados acessíveis através do pseudo-sistema de arquivos do proc
é acessível a partir de outras fontes e / ou através de outros meios.
Como um exemplo trivial, um processo geralmente tem acesso direto a
muitas das informações que podem ser colhidas de seus próprios
/proc/pid
directory. Contudo,
a maior parte da informação /proc
vem das estruturas de dados do kernel
que geralmente não são acessíveis aos processos do usuário.
Pode ser possível para um processo de nível de usuário privilegiado
para extrair esta informação do kernel usando /dev/kmem
(veja mem (4)
e kmem (7D) ) -
nos sistemas que suportam isso - mas isso seria muito difícil,
provavelmente não portátil, e geralmente não recomendado .
Para todos os efeitos práticos, /proc
é a única maneira de obter esses dados.