Inizialmente esistevano /bin
programmi (essenzialmente binari eseguibili) e molto presto /dev
file di dispositivi e /lib
codice eseguibile aggiuntivo caricato da programmi (librerie). /usr
è venuto anche molto presto, prima per i dati utente, quindi come uno spazio operativo in più con il proprio bin
e lib
, quindi man
contenente il manuale in formato elettronico. Il codice sorgente veniva spesso fornito da qualche parte sotto /usr
.
E c'erano alcuni file nel sistema operativo che non rientravano in nessuna delle categorie esistenti. Ciò includeva un passwd
file contenente le password degli utenti e un mtab
file scritto da mount
, e i programmi init
e quelli successivi rc
eseguiti all'avvio, e nel tempo un numero sempre maggiore di programmi che dovevano essere eseguiti solo a scopo amministrativo e non come parte del normale utilizzo.
(Puoi sfogliare alcuni vecchi codici sorgente Unix sull'Albero Unix . Le versioni precedenti a V6 sono molto frammentarie. Puoi anche consultare i manuali V1 e V6 nella libreria delle pagine del manuale .)
Inizialmente, non vi era alcuna connotazione in cui i file /etc
fossero file di configurazione. In questi primi giorni, se volessi personalizzare qualcosa, avresti ricompilato quella parte del sistema. Man mano che Unix diventava più potente, c'erano sempre più cose che potevi fare senza ricompilare. Man mano che Unix veniva usato più ampiamente, c'erano sempre più cose che la gente voleva fare, e trovarono il modo di farle senza affrontare il problema della ricompilazione. Così /etc
riempito con sempre più file di testo che le persone potevano e facevano personalizzare, quindi è diventato gradualmente la directory di configurazione.
Con la creazione di /sbin
contenere programmi destinati esclusivamente all'amministratore di sistema, è /etc
finito per contenere solo file di testo, molti dei quali possono essere personalizzati dall'amministratore di sistema. Alcuni file (ad esempio /etc/mtab
, a volte /etc/resolv.conf
) vengono gestiti automaticamente dai programmi di sistema; c'è una tendenza lenta a spostare questi file /run
nel mondo Linux.
Sui moderni sistemi unix, quasi tutti i file di configurazione a livello di sistema sono sotto /etc
, ma non tutti i file in /etc
sono file di configurazione. Le tipiche distribuzioni Linux e altre varianti unix non sono in grado di gestire molto bene la modifica di molti file che provengono da pacchetti; come minimo, potresti finire per unire manualmente le modifiche locali quando il sistema viene aggiornato.