- Inode
-
Ein Inode (auch I-Node, Kurzwort aus: engl. index node) ist ein Eintrag in einem Unix-Dateisystem, der Metadaten einer Datei enthält. In den meisten Unix-Betriebssystemen werden Dateien nur über ihre Inodes verwaltet.
Jeder Inode ist durch eine eindeutige Inode-Nummer gekennzeichnet und verweist auf genau eine Datei. Umgekehrt gehört zu jeder Datei auch ein einziger Inode, der Attribute der betreffenden Datei enthält, die Zuordnung ist daher eineindeutig. Namen und Inhalt werden unabhängig abgelegt: Dateinamen verweisen auf den Inode, dieser verweist auf den Speicherplatz des Datei-Inhalts, ausgenommen für sehr kleine Dateien (bis zu etwa hundert Bytes): Deren Inhalt wird von den meisten heutigen Dateisystem-Implementierungen direkt im Inode abgespeichert.
Unter Windows erfüllen im Dateisystem NTFS sogenannte File Records eine ähnliche Funktion wie Inodes.
Inhaltsverzeichnis
Im Inode gespeicherte Informationen
Ein Inode enthält
- die Zugriffsrechte auf die Datei (Eigentümer-, Gruppen- und sonstige Rechte)
- den Eigentümer der Datei und die bevorrechtigte Gruppe (UID, GID)
- den Dateityp (einfache Datei, Verzeichnis, Link,…)
- die Größe der Datei (in Bytes)
- einen Referenzzähler (Anzahl der Verweise auf die Datei)
- das Datum der letzten Inode-Änderung (change time, ctime), des letzten Zugriffs auf die Datei (letzte Dateiöffnung/-ausführung, access time, atime) und der letzten Änderung der Datei (modification time, mtime)
- einen oder mehrere Verweise auf die Cluster (Blöcke), in denen der Inhalt der Datei liegt.
Ein Dateiname (samt Pfad) verweist stets eindeutig auf einen Inode, ist aber nicht in diesem gespeichert: Der Inode speichert lediglich die Anzahl der Verweise. Mehrere, auch unterschiedliche, Dateinamen können auf denselben Inode verweisen (Hardlinks; das Maximum derart möglicher Verweise kann systemabhängig durch das Format des Zählers beschränkt sein). Erst mit dem Löschen des letzten Verweises (Zähler=0) wird die Datei logisch gelöscht, also der Speicherplatz zum Überschreiben freigegeben.
Beispiel anhand des Dateisystems ext2
Standardmäßig verweisen bis zu 12 Einträge im Inode auf je einen Cluster, in dem der Inhalt der Datei gespeichert ist. Reichen diese 12 Cluster nicht aus, zeigt ein Eintrag im Inode auf einen Cluster, der dann die Verweise zu den eigentlichen Datenclustern enthält. Ein solcher Verweis wird als einfach indirekter Block bezeichnet. Bis zu dreifach indirekte Blöcke sind möglich, so dass die maximale Dateigröße je nach Blockgröße zwischen 16 GiB und 4 TiB liegen kann.
Beispiel einer Inode-Struktur mit 12 KiB in direkt adressierten Datenblöcken und ungefähr 16 Millionen KiB + 65536 KiB + 256 KiB in indirekt adressierten Datenblöcken/Clustern mit jeweils einem KiB Größe: Die 256 Einträge in den Blöcken, auf die verwiesen wird, ergeben sich daraus, dass ein 1-KiB-Block genau 256 Adressen der Länge 4 Byte (32-Bit-Adressraum) enthalten kann.
Im Betriebssystem existiert eine Tabelle mit allen aktuellen Inodes. Ferner ist es möglich, Listen aller nichtbelegten Inodes zu erstellen.
Die Inode-Nummer einer Datei lässt sich mittels des Befehls
ls -i Dateiname
anzeigen.Siehe auch
Weblinks
Kategorie:- Dateiverwaltung
Wikimedia Foundation.