Inodes gibt es in Unix-/Linux-Dateisystemen, um Dateien und Verzeichnisse zu verwalten. Sie sind ein zentrales Konzept, das beschreibt was eine Datei ist, unabhängig davon, wie sie heißt oder wo sie liegt. Es beinhaltet z.B
Der Inhalt eines Verzeichnisses (die Datenblöcke, auf die sein Inode zeigt) besteht aus Directory Entries (Verzeichniseinträgen).
Angenommen der Benutzer admin legt eine Datei in seinem Homeverzeichnis ab.
/home/admin/test.txt
Der Startpunkt ist immer das Root-Verzeichnis /.Das Root-Verzeichnis selbst hat einen fest definierten Inode (z. B. immer Inode 2 auf ext-basierten Dateisystemen). Der Kernel kennt den Inode von / bereits, weil er beim Mounten geladen wurde. Dieser Inode ist ein Verzeichnis-Inode → er zeigt auf Datenblöcke, die sogenannte Directory Entries enthalten. Der Inhalt des Root-Verzeichnisses enthält Directory Entries wie:
| Name | Inode |
|---|---|
| . | 2 |
| .. | 2 |
| home | 128 |
| bin | 543 |
| etc | 900 |
| usr | 2310 |
Hier findet der Kernel den Eintrag: home → 128. Wir befinden uns also in /home. Dieser Inode zeigt wiederum auf Datenblöcke, die enthalten:
| Name | Inode |
|---|---|
| . | 128 |
| .. | 2 |
| user | 5012 |
Hier findet der Kernel: user → 5012. Auch hier wieder das gleiche Prinzip.
| Name | Inode |
|---|---|
| test.txt | 88001 |
Jetzt erst kennt das System die Metadaten der Datei test.txt und kann deren Datenblöcke lesen. Der Dateiname ist immer in einem DirectoryEntry gespeichert, nicht im Inode.