2009-05-05 8 views
3

Ich bin von der Definition der Inode-Nummer baff:Wie ist die Datenstruktur der Inode-Nummer?

Ein Inode auf einem traditionellen Unix-Dateisystem wie UFS oder ext3 eine Datenstruktur ist. Ein Inode speichert grundlegende Informationen über eine reguläre Datei, ein Verzeichnis oder ein anderes Dateisystemobjekt. Source

Also muss es in jeder Inode-Nummer eine logische Reihenfolge geben. Kannst du etwas direkt aus den Zahlen in der Front schließen?

4214970 0 drwx------ 102 user staff 3.4K Feb 2 22:34 new 
5728909 0 drwx------ 3 user staff 102B Mar 25 22:11 new_new 
5415906 0 drwx------ 15 user staff 510B Mar 19 02:28 stdout_TEST 

Wenn nicht, welche Art von Dingen können Sie dank der Datenstruktur wissen?

Antwort

3

Können Sie etwas direkt aus den Zahlen in der Front schließen?

Nicht unbedingt. Inodes werden recycelt.

Wenn nicht, welche Dinge können Sie dank der Datenstruktur wissen?

Prüfen der Header-Datei, die die Definition des struct entsprechend dem spezifischen Dateisystem (z.B. /usr/include/linux/ext2_fs.h für ext2 und ext3) enthält.

+0

+1 für den Pfad haben –

6

Eine Inode-Nummer ist kein Inode. :) Sie können sich die Inode-Nummer als Primärschlüssel der Inode vorstellen.

Wie die Inode-Nummern entschieden werden, hängt vom Dateisystem ab. Einige Dateisysteme können sogar Inode-Zahlen aus dem Nichts erzeugen (insbesondere einige FUSE-Dateisysteme). Zu anderen Zeiten kann es direkt auf den Speicherort auf der Festplatte abgebildet werden. Die unglückliche Tatsache ist, es ist ein etwas veraltetes Konzept, und viele moderne Dateisysteme haben Schwierigkeiten, ihre internen Standortinformationen in einer 32-Bit-Nummer in diesen Tagen zu komprimieren. In jedem Fall sollte man als Anwendungsprogrammierer die Inode-Nummer als undurchsichtigen Wert behandeln, der nur für den Gleichheitsvergleich geeignet ist (und nur dann, wenn Sie sicher sind, dass die Datei nicht gelöscht wurde, da Inode-Nummern wiederverwendet werden können) ...)

+0

Beziehen Sie sich auf "Inodes im virtuellen Speicher" mit dem Ausdruck "Inode-Zahlen aus der Luft"? –

+0

Ich meine die Inode-Nummer selbst. Bei einigen Dateisystemen gibt es keine vernünftige Möglichkeit, eine Inode-Nummer zu erstellen - zum Beispiel ein FUSE-Dateisystem, das auf FTP auf einem Windows-Server basiert. Diese Dateisysteme müssen wirklich die Inode _numbers_ up - _hopefully_ machen, damit sie einzigartig bleiben - weil sie nicht die notwendigen Informationen haben, um sie einzigartig zu machen. Ebenso wird ein virtuelles Dateisystem mit (möglicherweise) mehr als 2^32 Inodes Probleme beim Zuweisen eindeutiger Inode-Nummern – bdonlan