Data structures Inode编号的数据结构是什么样的?

Data structures Inode编号的数据结构是什么样的?,data-structures,filesystems,inode,Data Structures,Filesystems,Inode,我对inode编号的定义感到震惊: inode是传统Unix风格文件系统上的数据结构 例如UFS或ext3。inode存储有关常规节点的基本信息 文件、目录或其他文件系统对象 所以每个索引节点号都必须有一个逻辑顺序。你能从前面的数字直接得出结论吗 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_ne

我对inode编号的定义感到震惊:

inode是传统Unix风格文件系统上的数据结构 例如UFS或ext3。inode存储有关常规节点的基本信息 文件、目录或其他文件系统对象

所以每个索引节点号都必须有一个逻辑顺序。你能从前面的数字直接得出结论吗

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

如果不是,由于数据结构,您可以知道哪些内容?

索引节点编号不是索引节点。:)您可以将inode编号视为inode的主键

至于inode编号是如何决定的,这取决于文件系统。一些文件系统甚至可能凭空生成inode编号(特别是一些FUSE文件系统)。其他时候,它可能会直接映射到磁盘上的位置。不幸的是,这是一个有点过时的概念,现在许多现代文件系统很难将其内部位置信息压缩为32位数字

在任何情况下,作为应用程序程序员,都应该将inode编号视为不透明值,仅适用于相等比较(并且只有在您确定文件未被删除,因为inode编号可能会被重用的情况下…)

你能从前面的数字直接得出结论吗

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
不一定。inode是可回收的

如果没有,由于数据结构,您可以知道哪些事情


检查包含适合特定文件系统的
结构定义的头文件(例如,ext2和ext3的
/usr/include/linux/ext2_fs.h

您是否用短语“无中生有的inode编号”来指代“虚拟内存中的inode”?我指的是inode编号本身。对于某些文件系统,没有合理的方法来创建inode编号,例如,在FTP上构建一个到windows服务器的FUSE文件系统。这些文件系统确实需要增加inode编号,希望保持它们的唯一性,因为它们没有必要的信息使它们唯一。同样,一个(可能)超过2^32个inode的虚拟文件系统在分配唯一inode编号时也会遇到问题