Fachinesisch 02: Tauchfahrt in die Tiefen des Dateisystems

Bis jetzt bin ich schon ganz schön weit gekommen mit meiner Entdeckungsreise rund um Linux und Audio. Zeit, um eine kleine Verschnaufpause einzulegen und mal kurz auf den noch breiteren Linux-Pfad zu hüpfen. Denn so nett es ja ist, schon mit Linux als Betriebssystem umzugehen, Audioanwendungen zu starten und damit zu arbeiten. Aber so richtig kenn ich mich im Linux-Universum noch nicht aus, weshalb ich diesen Zwischen-Stopp dazu nutzen will, um mich quasi auf der großen Linux-Karte zurecht zu finden. Konkret heißt das, ich schaue mir das Linux-Dateisystem einmal näher an. Denn mir als altem Windows-Jünger sind die unzähligen Ordner mit kryptischen Bezeichnungen wie „etc“, „var“, „usr“, „bin“, „lib“ usw. völlig fremd. Keine Ahnung wo meine selbst erzeugten Dateien darin gespeichert werden, kein blasser Schimmer in welchem dieser Ordner Programme und Plug-ins abgelegt werden und nicht den leisesten Hauch von Wissen, wofür die Inhalte der einzelnen Ordner gut sind. Daher werde ich gezielt für Windows-Nutzer diesen Reisebericht hier verfassen, denn Mac-Anwendern dürfte aufgrund der Nähe zu Linux respektive Unix vieles vertraut vorkommen, wenngleich auch diese herzlich dazu eingeladen sind, eventuell das eine oder andere Neue hier kennenzulernen.

Dateisystem-oberste-ebene

Die oberste Ebene des Linux-Dateisystems: Das Wurzel-Verzeichnis

Meine Reise beginnt mit dem Aufruf der System-Festplatte durch Doppelklick auf das entsprechende Festplatten-Symbol mit der Bezeichnung „Dateisystem“. Es geht aber auch über das Start-Menü, indem man auf „Dateimanager“ klickt. Es öffnet sich ein Fenster, ähnlich wie der Windows Explorer oder der Mac-Finder, der eine Reihe von Ordnern zeigt. In der Text-Anzeige-Leiste des Fensters steht da ein simples Slash-Zeichen („/“). Das Dateisystem ist in einer Baumstruktur angelegt und wir befinden uns auf der obersten Ebene. Verglichen mit Windows würde anstelle des Slash, das C-Laufwerkssymbol stehen. Von dieser obersten Ebene aus lässt sich über die Ordner anschließend in die Tiefen des Betriebssystems weiter verzweigen. Aber zunächst verstehe ich nur Bahnhof. Nichts mit „eigene Dateien“, „Programme“, „Linux“ und dergleichen oder zumindest Bezeichnungen, die in eine ähnliche Richtung gehen. Ja, ja, mit Windows wird man schon irgendwie versaut und verbaut sich den Blick auf alternative Konzepte. Schlimmer noch ist aber die Gewohnheit, gegen die es jetzt anzukämpfen gilt. Ob ich will oder nicht, ich muss das alles neu erlernen und vor allem diese Windows-Schablone aus dem Kopf kriegen.

In der Linux-Welt ist das alles etwas anders verteilt und auch bezeichnet, wobei die Inhalte jedes Ordners selbstverständlich einen bestimmten Zweck verfolgen bzw. Aufgabe besitzen. Aber ganz so schwer ist das nun auch wieder nicht, eher vergleichbar mit dem Arbeiten auf Microsoft Word (HA! Schon wieder Windows) und dem Umswitchen auf das Pendant von Apache Open Office. Alles ist zwar vorhanden, nur teils an anderen Orten zu erreichen. Also Schluss mit dem Gejammer und auf ins Getümmel. Bei meinen Recherchen zu diesem Blog-Eintrag bin ich zu jedem Ordner auf folgende Erklärungen gestoßen, die ich jetzt einfach nach und nach hier aufführe:

/:
Dieser „Ordner“, eigentlich ist es die oberste Verzeichnis-Ebene des Betriebssystems, enthält die Bootpartition sowie einige Verknüpfungen zu anderen Programmen die beim Systemstart ausgeführt werden müssen sowie sämtliche relevanten Unterverzeichnisse.

/bin:
Die Abkürzung steht für „binaries“ und heißt nichts anderes als „Programme“. Allerdings sind darin ausschließlich für das Betriebssystem wichtige Programme enthalten, die zum Funktionieren desselben nötig sind. Dieser Ordner enthält grundlegende Shell-Befehle/Programme wie etwa „ls“ zum Auflisten des Festplatten-Inhalts bzw. des gerade geöffneten Verzeichnisses oder „mkdir“ zum Erstellen neuer Ordner.

/boot:
Auch dieser Ordner ist ausschließlich dem Betriebssystem vorbehalten und enthält Dateien, die zum Booten/Starten des Betriebssystems notwendig sind.

/cdrom:
Ein eigener Ordner, in dem Systemdateien für das eingebaute DVD-Laufwerk abgelegt sind; siehe auch /dev.

/dev:
Diese Abkürzung steht für „devices“, also Geräte. Darin sind Dateien enthalten, die benötigt werden, um im Betrieb die angeschlossene Hardware anzusprechen, etwa die Maus, die Tastatur usw.

/etc:
Nomen est Omen: „etc“ steht für „et cetera“, also alles übrige. In diesem Ordner sind System-Konfigurations- und Informations-Dateien abgelegt, die ebenfalls für das reibungslose Funktionieren des Betriebssystems wichtig sind.

Dateisystem-home-verz

Der Inhalt des Home-Verzeichnisses des Benutzers „konsonaut“, der viele Parallelen zum Nutzer-Verzeichnis von Windows besitzt.

/home:
Das sogenannte Home-Verzeichnis. Hier werden die vom Nutzer erstellten Dateien abgelegt. Im Windows-Sprech würde das dem Verzeichnis „eigene Dateien“ bzw. dem Nutzer-Verzeichnis entsprechen. Wird der Linux-Rechner von mehreren Nutzern mit entsprechenden Nutzerrechten betrieben, findet sich innerhalb des Home-Verzeichnisses übrigens pro Nutzer ein eigenes Home-Verzeichnis, wobei diese die Bezeichnung des jeweiligen Nutzers trägt.

/lib:
Kurz für „libraries“, also Bibliotheken. In diesem Ordner sind Unterprogramm-Bibliotheken, dynamisch gelinkte Programme und Kernel-Bibliotheken enthalten, die wiederum wichtig fürs Betriebssystem sind. Vergleichbar wäre dies mit den .dll-Programm-Bibliotheken in Windows.

/media:
Hier werden sogenannte Mount-Points, also Einhängepunkte für mobile Medien wie USB-Sticks, externe Festplatten oder DVD-Laufwerke erstellt. Das hört sich zwar irgendwie an, als ob darüber die Hardware am Betriebssystem quasi angemeldet wird. Tatsächlich werden aber die Verzeichnisse dieser Medien in das Dateisystem von Linux eingebunden.

/mnt:
Ein weiterer Mount-Ordner, der aber zumeist leer ist und nur zur Aufnahme von Einhängepunkten temporärer externer Medien dient, wie etwa USB-Sticks.

/opt:
kurz für „optional“. In diesen Ordner sollen/werden manuell installierte Programme mit eigener Bibliothek abgelegt, die nicht über die Linux-Distribution bzw. das Ubuntu-Software-Center geladen und installiert wurden. Darin finden sich etwa Programme wie Mozilla, aber auch entsprechende Desktop-Umgebungen, etwa der Gnome- oder KDE-Desktop.

/proc:
Die Abkürzung steht für „processes“, also laufende Programme. Der Ordner ist ebenfalls wichtig zum Betrieb von Linux und enthält Schnittstellen zu und vom Betriebssystem-Kernel. Darüber werden etwa Statusinformationen des Kernels ausgelesen.

/root:
Das Home-Verzeichnis des sogenannten „Super-Users“ oder anders gesprochen, des Administrators. Das X auf dem Ordner-Symbol zeigt an, dass der Nutzer keine Zugriffsrechte auf dieses Verzeichnis besitzt.

/run:
Ein noch relativ neuer Ordner, dessen Zweck ich leider nicht in Erfahrung bringen konnte, aber in jedem Falle auch wieder für Dateien und Prozesse des Betriebssystems reserviert ist.

/sbin:
Abgekürzt für „system binaries“. Enthält Daten und Dienst-Programme, die essentiell für das Funktionieren des Betriebssystems sind. Lediglich Administratoren oder Nutzer mit Super-User-Rechten dürfen dort Hand an die Programme anlegen.

/srv:
Kurz für „services“, ein Ordner der in der Regel leer ist und Daten von Diensten enthalten kann, die vom System bereitgestellt werden, etwa für das ftp- oder http-Protokoll.

/sys:
Die Ordner-Abkürzung steht für „system“ und ebenso wie in /proc sind ab Kernel-Version 2.6 wichtige Schnittstellen-Daten für den Kernel darin enthalten.

/tmp:
Ein auch von Windows her alter Bekannter: Das temporäre Verzeichnis zur Aufnahme temporärer Dateien, etwa bei der Installation von Programmen.

usr-verz

Das usr-Verzeichnis, verlgeichbar mit dem „Programme“-Ordner von Windows. Darin sind die meisten vom Anwender installierten Programme zu finden.

/usr:
Kurz für „user“, wenngleich die Abkürzung eigentlich für „Unix System Resources“ steht. Dieser Ordner ist am ehesten vergleichbar mit dem Programme-Ordner in Windows. Er enthält die meisten vom Nutzer installierten Programme, aber auch Bibliotheken und Systemtools.

/var:
Die Abkürzung steht für „variable“. In dem Ordner selbst befinden sich weitere Ordner mit Dateien auf die Programme zurückgreifen und sie permanent verändern, etwa Spielstände eines Spiels.

Soweit so gut. Und was lernen wir aus dem hier Vorgestellten? Die Ordner home, usr und teils auch opt sind die Ordner auf die wir zumeist zurückgreifen werden. Von allem anderen lassen wir gefälligst die Finger, denn diese Ordner sind dem Betriebssystem vorbehalten, es sei denn wir möchten absichtlich Linux „optimieren“, also kaputt reparieren und das Ganze am Ende nachhaltig zerschießen.
Abseits von dem hier Vorgestellten gibt es je nach Installation und Rechner-Konfiguration noch weitere optionale Ordner, etwa der Floppy-Ordner, falls der Rechner noch solch ein Laufwerk besitzt oder der windows-Ordner auf einem Rechner, der sowohl eine Linux- als auch eine Windows-Installation besitzt und in dem die entsprechenden Windows-Betriebssystem-Dateien enthalten sind oder der für sich sprechende Lost-and-Found-Ordner.

Nachdem wir jetzt einen ersten Überblick erhalten haben, wollen wir doch mal in die für uns relevanten Ordner reinschauen. Beim Klick auf das Home-Verzeichnis finden wir ein weiteres Verzeichnis, das unseren Benutzernamen trägt, in dem Fall „Konsonaut“. Wie erwähnt, können auf dieser Ebene noch weitere Ordner liegen wenn das Linux-System mit mehr als einem Benutzer arbeitet, wobei auch diese Ordner wiederum den Benutzernamen tragen, etwa „Schnuffel“ oder „Hans-Peter“. Beim Öffnen des eigentlichen Heim-Verzeichnisses erscheint eine Reihe von weiteren Ordnern mit sprechender Bezeichnung, die uns altbekannt vorkommen. Bilder, Dokumente, Downloads, Musik, Öffentlich, Videos sprechen für sich. Ein Klick auf das Schreibtisch-Symbol zeigt schließlich wahlweise in Form von Symbolen oder tabellarisch die auf dem Desktop abgelegten Dateien. Da fühlt man sich als Windows-Anwender direkt zu Hause.

usr-bin-verz

Im bin-Verzeichnis innerhalb des usr-Ordners sind sämtliche Programm-Dateien – im Windows-Sprech exe-Dateien – abgelegt. In Linux können das direkt ausführbare Dateien, aber auch Shell-, Python- und Perl-Scripst sein.

Anders verhält es sich nach dem Öffnen des usr-Verzeichnisses. Wir blicken auf eine Reihe weiterer (Unter-)Verzeichnisse, die mitunter die gleichen Bezeichnungen besitzen wie die Ordner in der obersten Ebene, also dem Wurzel-Verzeichnis, etwa „bin“, „lib“ und „sbin“. Hinzu gesellen sich Ordner mit neuen Bezeichnungen wie „include“, „lib32“, „local“, „share“ und „src“. Der Ordner „games“ spricht dabei als einziger für sich. Doch ausgehend von unserem Trip im Wurzelverzeichnis können wir schon erahnen, wofür die einzelnen Unterordner gedacht sind. Der eigentliche, in Windows-Terminologie gesprochen, Programm-Ordner ist das bin-Verzeichnis. Darin findet sich der Großteil der installierten Programme, wobei ihnen zugeordnete Bibliotheken, Treiber, Konfigurations-Dateien usw. auf die anderen Ordner verteilt sind, etwa in „lib“, „include“, „sbin“, „share“ oder „src“. So sind beispielsweise die Firefox-Add-ons in /usr/lib abgelegt.

Nach dem Öffnen des bin-Ordners finden wir vier verschiedene Arten von „Programmen“, die anschaulich über entsprechende Symbole dargestellt sind. Zum einen sind dies direkt ausführbare Programme (Zahnrad-Icons), vergleichbar mit den exe-Dateien in Windows. Doch es gibt auch noch sogenannte Shell-Skripts (Text-Datei-Icon), die ebenfalls ausführbar sind und zum Starten von Programmen dienen, wie etwa unsere Ardour3-DAW. Zu guter Letzt finden sich noch Python- und Perl-Scripts (Text-Icon mit „Py“/“Perl“-Schriftzug), die ähnlich wie die Shell-Scripts einen Programmcode ausführen/anstoßen, der das Starten von Programmen veranlasst. Die letzten drei Optionen stelle zumindest ich mir eher wie die setup.exe-Datei in Windows vor. Insgesamt wirkt dieses Konzept – ein eigener Ordner nur für die ausführbaren Programm-Dateien und weitere Ordner für die sie begleitenden Zusatz-Dateien – auf mich zunächst eher verwirrend und kompliziert. Da finde ich Windows, aber auch den Mac besser organisiert, die sämtliche programmrelevanten Dateien in einen Ordner packen. Aber sei es wie es ist, es ist eben alles eine Frage der Gewöhnung.

usr-lib-plugins

Im lib-Verzeichnis innerhalb des usr-Ordners werden Ladspa- und Lv2-Plug-ins bei der Installation als Programm-Bibliotheken in die eigens für sie geschaffenen Ordner abgelegt. Dies ist auch der Ort um VST-für-Linux-Plug-ins zu speichern, dann aber in einen eigenen „vst“ bezeichneten Ordner.

Und die Plug-ins? Wo sind die jetzt abgelegt? Gute Frage. Da es sich ja um Zusatz-Programme handelt, die quasi Huckepack auf ein Haupt-Programm aufsetzen bzw. sich darin starten, finden diese sich als Programm-Bibliotheken im lib-Ordner innerhalb des usr-Verzeichnisses. Wir finden dort je einen eigenen Ordner für Ladspa- und Lv2-Plug-ins. So einfach kanns dann auch gehen.

Bleibt am Ende die Frage, was das Ganze jetzt hier sollte. Nun, wie zu Beginn dieses Blogs schon einmal erwähnt, muss man kein Automechaniker sein, um einen PKW fahren zu können. Aber das Wissen um die Vorgänge innerhalb eines Auto-Motors kann für das grundsätzliche Verständnis beim Bedienen eines PKW von großem Vorteil sein. Und so ist es auch mit dem Linux-Betriebssystem. Denn in einer der nächsten Folgen will ich zeigen, wie das manuelle Installieren von Programmen abseits vom Ubuntu-Software-Center funktioniert, denn nicht jeder Hersteller von Musik-Software ist darüber zu finden und es gilt, die Programm-Dateien manuell herunterzuladen und zu installieren oder aber zumindest in den richtigen Ordner zu kopieren. Es wäre ja schade, wenn man sein Kreativ-Potenzial nicht richtig ausleben kann, nur weil das Plug-in, das einem dafür fehlt, nur händisch zu installieren ist.

Jetzt alle Vorteile von Professional-audio.de nutzen und kostenlos registrieren!

  • Sie erhalten vollen Zugriff auf alle Inhalte unserer Website.
  • Sie erhalten unseren regelmässigen PAM-Express-Newsletter mit exklusiven Vorab-Inhalten.
Hier kostenlos registrieren

Anmelden
   
Bitte teilen Sie diesen Beitrag