/proc
é um sistema de arquivos, porque os processos de usuário pode navegar por ela com chamadas de sistema familiares e chamadas de biblioteca, como opendir()
, readdir()
, chdir()
e getcwd()
. Mesmo open()
, read()
e close()
trabalhar em um monte de "arquivos" que aparecem na /proc
. Para a maioria das intenções e quase todos os propósitos, /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 em disco. No contexto de /usr
, /tmp
, /var/run
e assim por diante, estamos escrevendo sobre um entendimento ou uma conceitualização compartilhada de como nomear algumas coisas. Esses dois usos do termo "sistema de arquivos" são realmente bem diferentes. /proc
é realmente o segundo tipo de "sistema de arquivos", como você observou.
/proc
menos que se pense que os arquivos sempre são apoiados em disco (ou apoiados em fita, ou apoiados em CD ou em qualquer outro suporte9. Eles nem sempre - pense em discos RAM. um próximo / sequência aberta / gravação com um arquivo "real" em/home
, digamos, pode nem sempre significa que as mudanças correspondentes a intenção de refletir permanentemente o estado deste arquivo ondisk storagehave já foram feitas e concluídas.