2009-05-05 31 views
3

Je suis sidéré par la définition du nombre de inode:À quoi ressemble la structure de données du numéro d'Inode?

Une inode est une structure de données sur un système de fichiers traditionnel de style Unix tels que UFS ou ext3. Un inode stocke des informations de base sur un fichier, un répertoire ou un autre objet de système de fichiers ordinaire. Source

Il doit donc y avoir un ordre logique dans chaque numéro d'inode. Pouvez-vous conclure quelque chose directement à partir des chiffres à l'avant?

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 

Sinon, quel genre de choses que vous pouvez savoir grâce à la structure de données?

Répondre

3

Pouvez-vous conclure quelque chose directement à partir des nombres dans le front?

Pas nécessairement. Les inodes sont recyclés.

Sinon, quel genre de choses pouvez-vous savoir grâce à la structure des données?

Vérifiez le fichier d'en-tête contenant la définition de la struct appropriée au système de fichiers spécifique (par exemple /usr/include/linux/ext2_fs.h pour ext2 et ext3).

+0

+1 pour le chemin –

6

Un numéro d'inode n'est pas un inode. :) Vous pouvez considérer le numéro d'inode comme la clé primaire de l'inode.

En ce qui concerne la façon dont les numéros d'inode sont déterminés, cela dépend du système de fichiers. Certains systèmes de fichiers peuvent même créer des numéros d'inodes à partir de rien (en particulier certains systèmes de fichiers FUSE). D'autres fois, il peut correspondre directement à l'emplacement sur le disque. Le fait malheureux est que c'est un concept quelque peu dépassé, et de nombreux systèmes de fichiers modernes ont du mal à compacter leurs informations de localisation internes en un nombre de 32 bits ces jours-ci. Dans tous les cas, en tant que programmeur d'application, il faut traiter le numéro d'inode comme une valeur opaque, uniquement pour la comparaison d'égalité (et seulement si vous êtes sûr que le fichier n'a pas été supprimé car les numéros d'inodes peuvent être réutilisés). ...)

+0

Est-ce que vous faites référence aux "inodes dans la mémoire virtuelle" par l'expression "numéros d'inode de rien"? –

+0

Je veux dire le numéro d'inode lui-même. Avec certains systèmes de fichiers, il n'y a pas de moyen raisonnable de créer un numéro d'inode - par exemple, un système de fichiers FUSE construit sur FTP à un serveur Windows. Ces systèmes de fichiers ont vraiment besoin de rendre l'inode _numbers_ up - en les gardant bien uniques - car ils n'ont pas les informations nécessaires pour les rendre uniques. De même, un système de fichiers virtuel avec (potentiellement) plus de 2^32 inodes aura du mal à attribuer des numéros d'inode uniques – bdonlan