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.