Originalmente, havia /bin
para programas (essencialmente, binários executáveis) e muito em breve /dev
para arquivos de dispositivos e /lib
para código executável extra carregado por programas (bibliotecas). O /usr
também chegou muito cedo, primeiro para os dados do usuário, depois como uma área extra do SO com seus próprios bin
e lib
e, em seguida, man
contendo o manual em formato eletrônico. O código-fonte também costumava ser fornecido em algum lugar em /usr
.
E havia alguns arquivos no sistema operacional que não se encaixavam em nenhuma das categorias existentes. Isso incluía um arquivo passwd
contendo as senhas dos usuários e um arquivo mtab
escrito por mount
, e os programas init
e posterior rc
executados no momento da inicialização e, com o passar do tempo, mais e mais programas pretendidos para ser executado apenas para fins de administração e não como parte do uso normal.
(Você pode procurar algum código-fonte antigo do Unix na Árvore do Unix . Versões anteriores à V6 são muito fragmentário.Você também pode ver V1 e V6 manuais na Biblioteca de Páginas do Manual .
No início, não havia nenhuma conotação de que os arquivos em /etc
fossem arquivos de configuração. Nestes primeiros dias, se você quisesse personalizar alguma coisa, estaria recompilando essa parte do sistema. Como o Unix ficou mais poderoso, havia mais e mais coisas que você poderia fazer sem recompilar. À medida que o Unix era usado de forma mais ampla, havia mais e mais coisas que as pessoas queriam fazer e encontravam maneiras de fazê-las sem passar pelo trabalho de recompilar. Portanto, /etc
foi preenchido com mais e mais arquivos de texto que as pessoas puderam e personalizaram, por isso gradualmente se tornou o diretório de configuração.
Com a criação de /sbin
para conter programas destinados apenas ao administrador do sistema, /etc
acabou contendo apenas arquivos de texto, muitos dos quais podem ser personalizados pelo administrador do sistema. Alguns arquivos (por exemplo, /etc/mtab
, às vezes /etc/resolv.conf
) são mantidos automaticamente pelos programas do sistema; há uma tendência lenta para mover esses arquivos para /run
no mundo Linux.
Em sistemas unix modernos, quase todos os arquivos de configuração do sistema estão em /etc
, mas nem todos os arquivos em /etc
são arquivos de configuração. Distribuições típicas do Linux e outras variantes unix não lidam muito bem com a modificação de muitos dos arquivos que vêm de pacotes; no mínimo, você pode acabar tendo que mesclar modificações locais manualmente quando o sistema for atualizado.