
Ich lerne derzeit das Linux-Dateisystem kennen. Bisher habe ich Folgendes gelernt:
- Ein Verzeichnis ist einfach eine Datei, die die folgenden Informationen enthält: die Dateinamen und ihre Inode-Nummern.
- Es gibt eine Inode-Tabelle, die für jede Inode-Nummer eine Datenstruktur enthält. Diese Datenstruktur enthält Informationen wie Eigentümer-ID, Gruppen-ID, Dateigröße usw.
Enthält die Inode-Datenstruktur nun auch die tatsächliche Adresse der Datei auf der Festplatte oder enthält sie nur die Adresse einer anderen Datenstruktur, die die tatsächliche Adresse der Datei auf der Festplatte kennt?
Antwort1
Dies hängt vom Dateisystemtyp ab. In den meisten Dateisystemen enthält der Inode (oder Dinode) jedoch die Adressen der ersten paar Datenblöcke (sogenannte „direkte Blöcke“) und dann, bei größeren Dateien, die Adressen der „indirekten Blöcke“, die selbst Zeiger auf zusätzliche Datenblöcke speichern.
SehenInode_Zeiger_StrukturWeitere Einzelheiten finden Sie auf der Wikipedia-Seite.
Zu Lernzwecken empfehle ich, sich das UFS-Dateisystem anzusehen, das eine relativ einfache Struktur hat. SieheUFS-Diodenstruktur, insbesondere für Zeiger auf direkte di_db
und di_ib
indirekte Blöcke.