首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是inode?

什么是inode?
EN

Unix & Linux用户
提问于 2010-12-17 18:48:56
回答 1查看 14.5K关注 0票数 7

可能重复: 什么是超级块,Inode,Dentry和文件?

Unix文件系统的文档通常包含“inode”一词。那是什么,那是什么?为什么DOS/Windows文件系统没有inode(或者它们)?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2010-12-17 19:25:08

"inode“是一个非正式的术语,它指的是Unix文件系统用来保存与单个文件相关的任何磁盘上的数据块。传统上,"inode“保存保存文件实际内容的磁盘块的块号。传统上保存的文件名、文件类型等目录条目。这两块数据是分开的。

话虽如此,很多东西都从它身上掉了出来。传统上,文件名不是inode的一部分。文件名来自一个“目录”,该文件(它有自己的inode和内容)将文件名与inode编号相匹配。C预处理宏允许代码从inode编号转到磁盘块,计算非常少。

因此,许多名称可以引用相同的inode。硬链接由此而来。拥有“的能力”也是如此。请始终引用当前目录,不要使用任何技巧。一个目录总是包含“。还有“.”文件名,对应于目录本身的inode编号和目录所在的目录。".“还有“.”文件名在每个目录中都有条目。它们不是文件系统代码中没有数据的特殊情况。

Unix文件的层次结构从inode中产生。磁盘实质上是一个线性数组,包括一定大小的“块”、512字节、1 is、4 is等等。Inode 0总是位于指定的磁盘块上,允许Unix内核只知道"inode 0“就可以找到文件系统的根,它可以将"/”与inode 9关联起来。Inode 0也是一个目录文件。"usr“、"bin”、"tmp“、"dev”等在inode 0中都有条目。因此,inode允许将数据块的线性列表从磁盘映射到分层结构。

住在磁盘上。在最初的unix文件系统中,磁盘的前三分之一或四分之一是inode。其余的是数据块,根据需要分配给文件,其磁盘块号以inode结尾。多年来,各种文件系统(例如,BSD)试图通过在磁盘上不同位置放置inode区域来考虑磁盘的实际物理几何。

Winodws NT "NTFS“文件系统具有与inode类似的内容:主文件表中的条目。NTFS似乎继承了它的祖先DEC VMS Files-11。文件-11“文件头”显示与$MFT中的条目几乎相同。

我对其他Windows/DOS文件系统(FAT、FAT32等)一点也不精通,但在我看来,文件分配表中的记录似乎类似于合并目录条目和inode。我认为,将命名和层次化以及磁盘块数据结合在一起使胖文件系统变得如此脆弱。您不能让程序梳理单独的inode磁盘上的数据,并将它找到的文件放入"lost+found“--一旦文件分配表损坏,文件数据中的阻塞成员资格以及目录中的文件成员资格也就丢失了。

票数 17
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/4950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档