Como o proc / diskstats trabalha para apresentar esses valores? E para proc / stat e meminfo?

2

Estou tentando obter os dados de diskstats da mesma maneira que o arquivo. Existe alguma maneira de alcançar esses valores sem ler esse arquivo? Como os valores são colocados lá? Existe algum arquivo ".c" que processa os dados para colocar em diskstats? E para proc / stat e meminfo? (diskstats é minha principal preocupação)

    
por Gustavo Portela 25.04.2015 / 17:53

1 resposta

1

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.

    
por 26.04.2015 / 06:57