A árvore /dev contém nós de dispositivo , que fornece espaço do usuário acesso aos drivers de dispositivo no kernel em execução do seu sistema operacional.¹ Todos os sistemas operacionais do tipo POSIX possuem uma árvore /dev .
A árvore /proc originou-se no System V Unix, onde forneceu apenas informações sobre cada processo em execução, usando um esquema /proc/$PID/stuff . O Linux estendeu muito isso , adicionando todos os tipos de informações sobre o status do kernel em execução. Além desses arquivos de informações somente leitura, o /proc do Linux também possui arquivos virtuais graváveis que podem alterar o estado do kernel em execução. Sistemas operacionais do tipo BSD geralmente não têm /proc , e muito do que você encontra aqui não é portátil.
A solução pretendida para essa bagunça no /proc do Linux é /sys . Idealmente, todas as informações que não foram processadas e que foram reunidas na árvore /proc já devem ter sido movidas para /sys , mas a inércia histórica manteve muitas coisas em /proc . Geralmente, existem duas maneiras de efetuar uma mudança no kernel em execução: o antigo /proc way, mantido para compatibilidade com versões anteriores, e a nova /sys maneira que você está para usar agora. ²
Notas de rodapé:
-
Também existem várias entradas
/devque não correspondem a dispositivos de hardware, como/dev/null,/dev/randome/dev/tty. Estes são dispositivos virtuais que permitem que os programas de espaço do usuário conversem com outras partes do kernel, além dos drivers em execução, de uma maneira parecida a um dispositivo. -
Como regra geral,
/systende a ser mais estritamente organizado do que/proc, pois/sysespelha as estruturas de dados internas do kernel que gerenciam os recursos do sistema, enquanto/proccresceu organicamente ao longo de muitos anos, e as antigas decisões de design questionáveis não podem mudar agora porque existem programas usando essas interfaces antigas. O/syscomeçou com um design mais claro e não precisa arrastar o máximo de bagagem histórica de/proc.