/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.