Por que o proc é chamado de sistema de arquivos?

20

O sistema de arquivos proc permite que o kernel comunique informações sobre cada processo em execução em um sistema Linux.

Por que proc é chamado de sistema de arquivos? Não é um sistema de arquivos real como ext4 . É apenas uma coleção de arquivos contendo informações sobre os processos em execução.

    
por Makhlouf GHARBI 17.05.2015 / 19:33

3 respostas

25

/proc é um sistema de arquivos, pois os processos do usuário podem navegar por ele com chamadas conhecidas de sistema e de biblioteca, como opendir() , readdir() , chdir() e getcwd() . Mesmo open() , read() e close() trabalham em muitos dos "arquivos" que aparecem em /proc . Para a maioria das intenções e quase todas as finalidades, /proc é um sistema de arquivos, apesar de seus arquivos não ocuparem blocos em algum disco.

Suponho que todos devemos esclarecer qual definição do termo "sistema de arquivos" estamos usando atualmente. No contexto do ext4, quando escrevemos “sistema de arquivos”, provavelmente estamos falando sobre a combinação de um layout de blocos de disco, especificação de informações de metadados sobre os blocos de disco que também residem em algum lugar no disco e o código que lida com esse layout no disco. No contexto de /usr , /tmp , /var/run e assim por diante, estamos escrevendo sobre um entendimento ou uma conceituação compartilhada de como nomear algumas coisas. Esses dois usos do termo “sistema de arquivos” são de fato bem diferentes. /proc é realmente o segundo tipo de "sistema de arquivos", como você observou.

    
por 17.05.2015 / 19:53
18

it's just an area of files containing information

Mas é exatamente isso que um sistema de arquivos é . Os sistemas de arquivos não precisam ser graváveis e não precisam residir em armazenamento permanente.

Nota: Há uma distinção entre procfs (a implementação do pseudo sistema de arquivos no kernel) e seu ponto de montagem convencional /proc . Você poderia, em teoria, montar um procfs em qualquer lugar, mas isso é raro. Por causa disso, as pessoas geralmente falam sobre /proc quando realmente querem dizer procfs .

procfs é chamado de pseudo sistema de arquivos porque os arquivos em procfs não são criados pelas operações usuais do sistema de arquivos, mas são adicionados e removidos pela própria implementação do sistema de arquivos com base no que está acontecendo em outro lugar no kernel. >     

por 17.05.2015 / 19:49
9

Se os dados forem organizados de forma que possam ser acessados por meio dos mecanismos usados nos sistemas de arquivos, você pode chamar tudo isso de sistema de arquivos.

    
por 17.05.2015 / 19:48