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

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

  • 谢谢!

    最佳答案

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

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

    关于linux - 读取磁盘上的inode到内存中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4972888/

    10-11 21:24