* Phillip Richdale schrieb am 09.Okt.2001:
Wer hat sich eigentlich diese haarsträubende Verzeichnisstruktur von Linux ausgedacht und wie alt ist die?
Teilweise stammt sie von Denis M. Ritchie und Ken Thomson, die Erfinder von UNIX. Das war in den späten 60er Jahren. Genauer /usr, /bin, /lib, /dev, /tmp, /proc, /mnt und /etc gab es schon seit längerem. (Min. seit den späten 70er) Damals gab es noch kein /var, /home und /opt, das war alles in /usr. Besonders das fehlende /home war sehr unbefriedigend. Auch gab es kein /boot und kein /root, das lag unmittelbar in / und kein /sbin, das lag in /etc. Alles nicht als Unterverzeichnisse, sondern die Dateien und Verzeichnisse, die jetzt z.B in /var liegen, lagen in /usr neben denen, die auch jetzt da liegen.
Macht die so überhaupt noch Sinn?
imho schon. Jedenfalls das meiste. Die Notwendigkeit von /opt habe ich auch nicht verstanden.
Ich gewinne immer mehr den Eindruck, das ca. 3/4 des DirTrees überflüssig sind. Ein einziges heilloses Durcheinander. KDE und Gnome sind unter /opt, X unter /usr, Parsec unter /usr/games und Descent3 unter /usr/local/games. Configs, RCs und Umgebungsvariablen verteilen sich homogen auf /etc und /var und ein paar anderen Stellen.
Konfigurationsdateien sollen sich alle in /etc befinden, oder in Home natürlich.
Und das sind noch die aufgerämtesten.
Hm, und was ist mit /dev?
Sourcen und developer libs vermischen sich mit Applikationen, Apps jenseits von ~ sind auf bestimmte User festgelegt, etc, etc.
Manchmal habe ich allerdings auch den Eindruck, daß sich nicht alle Programierer mit den UNIX-Geflogenheit auskennen. :((
Hinzu kommt diese seltsame omnipräsente Untertgruppierung in /local. Als ob es auf *nix Sinn macht ausgerechnet via Verzeichnis zwischen lokal beschränkten und im Netz ausführbaren Programmen zu unterscheiden. Regelt man sowas nicht über Usergroups?
In /usr/local liegen Programme die nicht zu der Distribution gehören, sondern selber übersetzt hat oder gar selber geschrieben. Ein Sysadmin hat immer paar Skripte, die er der Allgemeinheit zur Verfügung stellt. Wo gehören die wohl hin? In /usr/local eben. Die Unterscheidung zwichen lokalem Rechner und Netzwerk ist bei /usr und /var wichtig. In /usr stehen Netzwerkweite Dateien, die nur gelesen werden, in /var stehen Dateien, die beschrieben werden und von Rechner zu Rechner verschieden sind.
Würde es nicht auch z.B. Sinn machen unter / ein Verzeichnis festzulegen, wo alles 'reinkommt was im weitesten Sinne zur Entwicklung gehört und alleine erstmal gar nicht lauffähig ist? Für Sourcen, Makefiles, installroutinen, etc.? Dann würde der Rest wahrscheinlich schon durchsichtiger und Standarduser brauchten das alles erstmal garnicht dazunehmen.
Gibt es doch, das ist /urs/local. Das es unter /usr steht hat die Bewandnis, daß alles was nicht schon beim booten benötigt wird unter /usr steht, denn /usr ist oftmals eine eigene Partition. Eigene Partitionen für /usr, /opt, /var, /tmp und /home ist Sinnvoll. /dev, /etc, /bin, /sbin und /lib dürfen auf keiner anderen Partiton sein, da sie schon zu einem frühen bootzeitpunkt benötigt werden, wo nichts anderes als / gemountet ist. /root woanders zu setzen ergibt nicht viel Sinn. /mnt ist nur ein Mountpoint und /proc ist ein eigenes Dateisystem.
Gibt es Projekte, die an eine sinnvollen Directory-policy arbeiten? Was ist mit Debian? Die sind doch komplett GPL und müßten doch schon ein bißchen aufgeräumt haben. Wie sieht deren DirTree aus?
Das meiste ist UNIX-weit üblich. Bernd -- ROTFL = Rolling On The Floor, Laughing = Auf dem Boden wälzen, lachend. SCNR = Sorry, Could Not Resist = Sorry, Ich konte nicht wiederstehen. AFAIK = As Far As I Know = So weit ich weis|BTW = By The Way = Nebenbei bemerkt IMHO = In My Humble Opinion = meiner bescheidenen Meinung nach |Zufallssig. 9