8

我相信有两种类型的 inode - 磁盘上的和核心内的 inode(fs.h 中的“struct inode”)。磁盘索引节点基于文件系统实现。我正在尝试理解基本概念并有几个问题-

  • 有人可以指出我将磁盘上的 inode 读取/复制到核心 inode 的代码(或逐步完成这些步骤)吗?即,当创建核心inode 时,它​​必须来自磁盘上的inode。那么,这是怎么发生的呢?
  • 为什么内核 inode 不存储指向磁盘 inode 的指针?
  • 如果对内核 inode 进行了修改,那么它是如何传播到磁盘上的 inode 的?任何指向代码或代码流的指针都会有所帮助。

谢谢!

4

1 回答 1

2

在使用算法 iget 为新分配的磁盘 inode 分配空闲 inode 后,核心 inode 在算法 ialloc 中从磁盘 inode 复制。

内核设置标志来指示磁盘 inode 和 in-core 副本之间的差异。当内核需要记录对文件或 inode 的更改时,它会在检查这些标志后将 inode 的 in-core 副本写入磁盘。

于 2011-02-13T15:09:22.103 回答