2016-06-21 8 views
0

Ich bin gespannt, wie und wo Linux (und jedes Betriebssystem, das Inode für sein Dateisystem verwendet) den Überblick über freie Inodes behält, die verwendet werden können? Wenn eine neue Datei erstellt wird, welchem ​​Inode weist das Betriebssystem sie zu? Die Dinge werden komplexer, da Dateien kontinuierlich erstellt und gelöscht werden. Wie im Allgemeinen ein OS verwaltet, welche Inodes frei sind und welche verwendet werden?Wo hält Linux den Rekord an freien Inodes?

Ich würde vermuten, dass die Inodes wie eine freie Liste strukturiert sind, ähnlich wie ein Speicherzuordner. Aber wenn man sich alle Beschreibungen der Inode-Struktur anschaut, habe ich kein Zeigerfeld für "next inode" gefunden. Ich denke, das ist ein wichtiges Thema, aber seltsamerweise kann ich keine Literatur mit einer eindeutigen Antwort finden.

+0

Diese Frage bezieht sich nicht auf die Programmierung und sollte auf unix.stackexchange.com verschoben werden. – jlliagre

Antwort

1

Zunächst einmal lassen Sie uns die Idee von Inodes von Linux trennen; Inodes sind eine Eigenschaft der ext3-, ext4- und UFS-Dateisysteme im Gegensatz zu einem OS. Wo wird Inode-Information gespeichert? Der folgende Link sollte das beantworten.

https://serverfault.com/questions/212766/where-is-the-inode-number-stored?newreg=ddf0ea8fd887447698c8f95

In Bezug auf „frei“ Inodes werden Inodes erst erstellt, wenn eine neue Datei oder ein Verzeichnis erstellt wird; Es gibt keine "freien" Inodes.

1

Wo die Inodes genau gespeichert sind, hängt vom Dateisystem ab, genau wie die Inodes relevant sind oder nicht.

Die meisten traditionellen Unix/Linux-Dateisysteme (z. B. ufs, ext2, ext3, ext4, gfs2, ocfs2, ...) erstellen eine Inode-Tabelle fester Größe, die auf der Festplatte gespeichert ist. Diese Tabelle wird im RAM zwischengespeichert.

Ausnahmen sind reiserfs, jfs, xfs, btrfs und zfs, die neue Inodes dynamisch zuweisen können.

Mit den letzteren sind freie Inodes nicht sehr sinnvoll, aber mit den ersteren kann man definitiv keine Inodes mehr haben, wenn die Dimensionierung zum Zeitpunkt der Erstellung des Dateisystems nicht angemessen war. Zusätzlich zu der vollständigen Inode-Tabelle ist normalerweise auch eine freie Inode-Liste im Dateisystem gespeichert.

NTFS hat etwas ähnliches wie Inodes unter dem Cover und schließlich, einige Dateisysteme verwenden überhaupt keine Inodes wie Fat32 und ISO9660.

Verwandte Themen