我最近开始学习Linux内核,刚学习了inode,它是包含文件元数据的数据结构。
那么,操作系统如何找到文件的相关inode呢?(比如说一个路径的字符串)。此外,这些inode存储在哪里?我的意思是,它们显然存储在磁盘上,但是具体是如何管理的呢?
我能想到的一个天真的解决方案是,在磁盘上分配一个专门用于inode的区域 - 实际上是怎么做的呢?
我最近开始学习Linux内核,刚学习了inode,它是包含文件元数据的数据结构。
那么,操作系统如何找到文件的相关inode呢?(比如说一个路径的字符串)。此外,这些inode存储在哪里?我的意思是,它们显然存储在磁盘上,但是具体是如何管理的呢?
我能想到的一个天真的解决方案是,在磁盘上分配一个专门用于inode的区域 - 实际上是怎么做的呢?
这取决于文件系统的实现。例如, ext2fs/ext3fs选择在块组内的数据块之前存储索引节点 (inode)。第二扩展文件系统 (EXT2)
请注意,索引节点存储在所有块组中。例如,索引节点1到32768将存储在块组0中,索引节点32768到65536将存储在块组2上,依此类推。 因此,您的问题的答案是:索引节点存储在inode表中,并且在分区中的每个块组中都有一个inode表。