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 .