Friday, June 22, 2012

O directório /proc

Este sistema de ficheiros(/proc) contém uma quantidade grande de directórios que estão em constante mudanças, tanto podem estar lá num momento como deixar de estar no momento seguinte (alguns deles). Cada um desses directórios contém informação relativa a cada um dos processos activos num dado momento numa máquina. Quando um novo processo é iniciado, um novo directório é criado no sistema de ficheiros /proc para si e muitos dados relativos a esse processo são criados dentro desse directório tais como: a linha de comandos a partir da qual o programa/processo foi inicializado, uma ligação para o directório actual do processo, as variáveis de ambiente, onde o executável do mesmo se localiza e por aí fora.


A maior parte da informação nos ficheiros é comummente "legível por humanos", exceptuando alguns casos; contudo, há alguns ficheiros em que não se deve "tocar", como por exemplo o ficheiro kcore. Este ficheiro contém informação para a depuração de problemas do kernel e se tentarem fazer um 'cat' ao mesmo, o sistema pode "pendurar/congelar" e "morrer"; se tentarem copiar este ficheiro para outro destino no disco, muito provavelmente acabarão por encher a partição com essa cópia. Isto só para deixar claro o seguinte: se não sabem se faz mal ou não, não mexam! Pesquisem primeiro. Contudo, estamos aqui para aprender, testar coisas e fazer experiências, certo? A minha resposta seria: É para isso que servem as máquinas virtuais! :)

Abaixo, alguns dos ficheiros mais importantes:

cmdline - A linha de comandos evocada aquando do início do kernel
cpuinfo - Informação acerca da CPU, qual o fabricante, velocidade, quantidade de processadores, cores, cache... etc.
dma - Contém informação sobre os canais DMA disponívels e que driver está a usá-lo.
filesystems - Informação sobre os sistemas de ficheiros suportados pelo kernel.
interrupts - Uma listagem breve de todos os canais IRQ, quantos IRQs estão visíveis e que driver está actualmente a usá-lo.
iomem - Um pequeno ficheiro que contém todos mapeamentos de memória IO usado pelos diferentes drivers.
ioports - Lista breve de todas as portas IO usadas por vários drivers.
kcore - Um despejo completo de memória. Usado para a depuração de problemas do sistema. Não fazer cat ou cp deste ficheiro.
kmsg - Contém mensagens enviadas pelo kernel, não é nem deve ser lido pelos utilizadores pois pode contar informação vital. Tem o mesmo propósito do ficheiro aterior.
ksyms - Tablea de símbolos do kernel, usada também para a depuração do mesmo.
loadavg - Informação sobre a carga de processamento para os últimos 1, 5 e 15 minutos.
meminfo - Informação sobre o uso de memória no sistema.
modules - Informação sobre todos os módulos carregados no kernel, nesse momento.
mounts - link simbólico para outro ficheiro em no sistema de ficheiros /proc que contém informação sobre todos os sistemas de ficheiros montados.
partitions - Informação sobre todas as partições encontradas em todos os discos no sistema.
pci - Dá muita informação sobre todos os dispositivos PCI no sistema, inclui também dispositivos AGP e outros dispositivos embutidos ou integrados que estão conectados ao barramento PCI.
swaps - Informação sobre todas as partições do tipo swap montadas.
uptime - Dá o tempo de vida do sistema em segundos desde que este foi reiniciado.
version - Fornece a versão exacta do kernel actualmente em execução assim como a versão do build do mesmo e versão do gcc usado.


Abaixo uma lista de directórios que encontrarão no /proc:

bus - Informação sobre todos os barramentos hardware, como USB, PCI e ISA.
ide - Informação sobre os barramentos IDE em sistemas que os contêm.
net - Alguma informação básica e estatísticas sobre os diferentes sistemas de rede compilados no sistemas.
scsi - Informação sobre os barramentos SCSI em sistemas do mesmo tipo.
sys - Contém inúmeras variáveis que podem ser alteradas, incluindo a variável /proc/sys/net/ipv4. 


Este post é uma cópia traduzida, adaptada e autorizada do blog abaixo. Obrigado Nikesh Jauhari http://linuxpoison.blogspot.com/2008/10/proc-explained.html

No comments:

Post a Comment