为什么我们不能直接在 inode 中存储文件名

Ben*_*Ben 4 unix linux filesystems

我真的不明白为什么在 UNIX 系统中他们不直接在 inode 中存储文件名,而是使用映射系统。我们无法存储它们的文件名?或者,如果我们更改文件名,我们不必在 inode 中再做一次?

如果我错了,或者还有其他解释,请告诉我。提前致谢

Lee*_*hem 7

为什么不直接在inode中包含文件名,这是我想到的原因:

  1. 一个文件可能有多个名称,也就是硬链接
  2. 为了支持长文件名,比如至少 255 字节(在大多数 POSIX 系统上),inode 会很大,而且因为通常文件名不那么长,所以浪费了很多空间。
  3. 如果将来我们想要/需要支持更长的文件名,我们需要更改inode的结构,这可能会导致向后兼容问题。