Christian Seiler: Linux Ordnerrechte

Beitrag lesen

Hallo,

also vielen Dank, jetzt ist mir der Unterschied schon sehr klar geworden, zwischen Verzeichnis und Datei. Kennst Du dich eigentlich auch mit I-Nodes aus?

Wenn Du eine konkrete Frage hast: Stelle sie.

Da kopiere ich einfach mal vom anderen Beitrag heraus:
Zitat: "Es können max. 2^16 I-Nodes referenziert werden. Also nur 2^16 Dateien pro Dateisystem"

Woher hast Du das? Im Prinzip sind I-Nodes bzw. auch wo sie abgelegt werden  ein dateisystemspezifisches Konzept. In UNIX-Dateisystemen trennt man in der Regel nämlich zwischen Eintrag mit Dateinamen im Verzeichnis und Metadaten der Datei (Größe, Änderungsdatum). Man hat also 3 Schichten:

+------------------------+           +----------------------------+
 | Verzeichnis            |    +----->| Inode 42                   |
 +------------------------+    |      +----------------------------+
 | Name     I-Node-Nummer |    |      | Größe:         54 Bytes    |
 +------------------------+    |      | Änderungsdatum: gestern    |
 | testdatei           42-|----+      | Besitzer:   Max Mustermann |
 | ...                 ...|           | ...                        |
 +------------------------+           | Verwendete Blöcke:         |
                               +------|----2                       |
                               |   +--|---17                       |
            +------------------+   |  |   69-------------+         |
            |                      |  +------------------|---------+
            |                      |                     |
Datenblöcke im Dateisystem:        |                     |
            |                      |                     |
            v                      v                     v
   +------------------+   +------------------+   +------------------+
   | Block 2          |   | Block 17         |   | Block 69         |
   +------------------+   +------------------+   +------------------+
   | Anfang der Datei |   | Mitte  der Datei |   | Ende der Datei   |
   +------------------+   +------------------+   +------------------+

Damit ist es dann zum Beispiel möglich, dass eine Datei mehrere Einträge hat (d.h. ein Inode mehrere Dateinamen hat, die auf dieses Inode verweisen), das nennt sich dann "hard links".

Wie viele Inodes nun möglich sind hängt stark vom Dateisystem ab - eine allgemeine Zahl kann ich Dir nicht nennen. Manchmal kann man die Maximalanzahl auch festlegen, wenn man das Dateisystem anlegt. Die Maximalzahl an Inodes gibt (grob) die Maximalzahl an inhaltlich unterschiedlichen Dateien an, die es im Dateisystem geben kann.

Wenn Du das dagegen mit dem FAT-Dateisystem (DOS, Windows) vergleichst, dann sieht das dort etwas anders aus: Dort gibt es sowas wie "hard links" nicht, jede Datei darf nur einmal referenziert werden. Alle Metadaten zur Datei werden bereits im Verzeichniseintrag mitgespeichert und dort werden dann auch die verwendeten Blöcke der Datei referenziert. (Genaugenommen wird bei FAT der erste Block referenziert und alle weiteren Blöcke sind dann über eine Art "Kette", die woanders abgelegt wird, erreichbar.)

Wenn Du nun aber ein FAT-Dateisystem unter Linux einbindest, dann emuliert der FAT-Dateisystemtreiber unter Linux das INode-Konzept, da die Dateisystemschicht im Linux-Kernel INodes erwartet. Dies ist nicht nur bei FAT so, es gibt auch noch viele andere Dateisysteme, die das Konzept von Inodes nicht kennen, sondern Dateien irgendwie anders ablegen.

Ich hoffe, ich konnte das Konzept von Inodes etwas klarer machen.

Viele Grüße,
Christian