Primeiro, /dev/core
é um link simbólico para o arquivo normal /proc/kcore
. Portanto, test -h /dev/core
e test -f /dev/core
são verdadeiros: -h
porque é um link simbólico, -f
porque o destino do link simbólico é um arquivo normal.
Agora para o que é /proc/kcore
. É um arquivo normal, mas é um pouco diferente dos arquivos comuns aos quais você está acostumado. Sempre que um programa faz algo com um arquivo (abrir, ler, escrever, etc.), isso é feito por meio de uma chamada de sistema , isto é, executando algum código no kernel. O código que é invocado depende do tipo de sistema de arquivos. Para um sistema de arquivos em disco, como ext4 ou FAT, esse código funciona como as partes de dados que compõem o arquivo são organizadas e faz chamadas para a camada de armazenamento subjacente (por exemplo, o driver de disco) para ler e gravar essas partes. Para um sistema de arquivos de rede, como NFS ou Samba, esse código envia pacotes de rede para o servidor de arquivos. Para /proc
, que é o ponto de montagem para o sistema de arquivos procfs , esse código exibe ou modifica as estruturas de dados do kernel. p>
A maioria dos arquivos em /proc
informa informações sobre o sistema, por exemplo, /proc/mounts
informa a lista de pontos de montagem, /proc/modules
informa a lista de módulos carregados, /proc/123/stat
relata informações de status sobre o processo com PID 123, etc. O arquivo /proc/kcore
relata o conteúdo da memória física do sistema , em um formato adequado para um depurador, portanto, a leitura de bytes de /proc/kcore
essencialmente lê o conteúdo da memória física.
Arquivos no sistema de arquivos procfs podem ser considerados “mágicos”, um pouco da mesma forma que arquivos do dispositivo são “mágicos” " Arquivos de dispositivos e sistemas de arquivos como procfs e sysfs obtêm sua mágica de diferentes maneiras: arquivos de dispositivo podem ser criados em qualquer (bem, mais ) sistemas de arquivos, eles são mágicos porque sua entrada de diretório diz “dispositivo de bloqueio” de “dispositivo de caractere” ao invés de “arquivo regular”; os arquivos em /proc
e /sys
são mágicos porque todo o sistema de arquivos em que eles estão é mágico.
Só que, como vimos acima, não há mágica real envolvida. É apenas o código do kernel, se o código calcula layouts de blocos e os lê de um disco ou formata estruturas de dados do kernel.
Você pode ver a documentação do sistema de arquivos procfs na página proc
man e a documentação do kernel .