Todos os arquivos virtuais estão em arquivos de dispositivos do Linux?

0

Os dois arquivos a seguir são arquivos virtuais:

/dev/sda1
/proc/cpuinfo

Eu sei que /dev/sda1 é um arquivo de dispositivo (que aponta para um driver de dispositivo), portanto, quando eu acessar esse arquivo, estou realmente acessando o driver de dispositivo.

Mas e o /proc/cpuinfo , esse arquivo também é um arquivo de dispositivo? Se for, todos os outros arquivos virtuais estão nos arquivos do dispositivo Linux?

    
por user285432 10.04.2018 / 17:30

2 respostas

5

Todos os arquivos em /proc são fornecidos pelo sistema de arquivos proc , que é descrito assim em its manpage :

The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures.

Este é um sistema de arquivos especial fornecido pelo kernel para fornecer acesso aos dados que ele armazena, por exemplo sobre a CPU ( cpuinfo ), sobre processos (nos diretórios numéricos em /proc , correspondendo a cada identificador de processo) ... Os arquivos dentro dele não são arquivos de dispositivo, eles são efetivamente pontos de extremidade para chamadas de função no kernel para recuperar informações dele.

Outros sistemas de arquivos especiais incluem devtmpfs e sysfs .

Portanto, não, todos os arquivos "virtuais" não são arquivos do dispositivo. Indiscutivelmente, os arquivos de dispositivos não são virtuais, já que os nós de dispositivos existem como arquivos reais; o modo como eles agem não é o mesmo que a maioria das pessoas considera arquivos, mas são arquivos, no entanto.

Essas perguntas podem ajudar você a entender tudo isso melhor:

por 10.04.2018 / 17:35
2

Não. /proc no Linux é um pseudo sistema de arquivos que fornece uma interface para as estruturas de dados do kernel. Não há caracteres ou arquivos especiais de bloco nele, no mesmo sentido que os arquivos em /dev (você não pode usar os arquivos /proc para montar um sistema de arquivos ou falar com um modem ou unidade de fita etc).

Este sistema de arquivos é totalmente explicado pelo manual proc(5) em seu sistema ( man 5 proc ).

    
por 10.04.2018 / 17:35