【问题标题】:why Inode number is different from computer to computer [closed]为什么 Inode 编号因计算机而异[关闭]
【发布时间】:2013-12-10 20:51:24
【问题描述】:

我在其中创建了一个文件夹和文件(在 linux 中),然后我使用以下命令获取每个文件和目录的 Inode 号:

ls -i -R

但是当我使用另一台计算机执行相同任务时,我会为每个 inode 得到不同的数字,我知道这是合理的,但每个人都可以解释原因吗?我的意思是为什么不同计算机的结果不同?

【问题讨论】:

  • 1.不是关于 SO 的话题。 2. 你甚至不知道什么是 i-node!
  • 我认为 Inode 是在文件实现的主题中教授的,所以它是在 Os 的主题中。所以我认为你的专业不是计算机科学,这就是你这样认为的原因 2)inode 是一种用于表示文件的数据结构 3)你认为这种回答方式有帮助吗?
  • 我没有回答,我评论了。我不是学生,但我的专业是comp sci。 SO适用于编程问题。这不是编程问题。

标签: linux unix filesystems inode


【解决方案1】:

inode (or index node) 是一个指针/标识符,用于文件系统的内部数据结构中。

因此,不同的计算机有不同的文件系统——谈论数据,而不是类型/实现! - 因此资源具有不同的 inode 值。 inode 是 internal 标识符,而 pathexternal 标识符。

作为一个类比,想象一个现代操作系统中的 C 程序 malloc 一个新对象。 malloc 返回一个唯一的指针in 进程。但是,许多进程在引用完全不相关的对象时可以共享相同的指针值(当被视为整数地址时)。

【讨论】:

  • 拥有不同的文件系统是指不同的文件系统实现吗?
  • 没有。不同的数据。也就是说,相同的文件系统类型(即 ext4,甚至在相同的物理硬件上),但内部数据不同。在添加新文件时,系统通常能够选择 "any" 空闲 inode 值。由于使用的(和空闲的)inode 值会因系统而异(基于之前发生的文件访问),这意味着两个系统可能会为特定文件共享相同的 inode 值(除非在 direct 物理数据之后)复制) 非常低。
  • 数据所有先前文件系统操作的状态 - 这包括逻辑布局(可能相同)和 内部文件系统数据布局(不一样)。
猜你喜欢
  • 2010-11-09
  • 1970-01-01
  • 2016-05-09
  • 2011-01-23
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
相关资源
最近更新 更多