inode

✍ dations ◷ 2025-04-11 01:29:53 #文件系统,Unix

inode(index node)是指在许多“类Unix文件系统”中的一种数据结构,用于描述 文件系统对象(包括文件、目录、设备文件、socket、管道, 等等)。每个inode保存了 文件系统对象数据 的属性和磁盘块位置。文件系统对象属性 包含了各种元数据(如:最后修改时间) ,也包含用户组(owner )和权限数据。

文件夹是inode的名字。一个文件夹包含自身节点,父节点和每个子节点。

Unix先驱丹尼斯·里奇说,inode这个命名的来源可能是文件系统的存储组织为一个扁平数组,分层目录信息使用一个数作为文件系统这个扁平数组的索引值(index)。

文件系统创建(格式化)时,就把存储区域分为两大连续的存储区域。一个用来保存文件系统对象的元信息数据,这是由inode组成的表,每个inode默认是256字节或者128字节。另一个用来保存“文件系统对象”的内容数据,划分为512字节的扇区,以及由8个扇区组成的4K字节的块。块是读写时的基本单位。一个文件系统的inode的总数是固定的。这限制了该文件系统所能存储的文件系统对象的总数目。典型的实现下,所有inode占用了文件系统1%左右的存储容量。

文件系统中每个“文件系统对象”对应一个“inode”数据,并用一个整数值来辨识。这个整数常被称为inode号码(“i-number”或“inode number”)。由于文件系统的inode表的存储位置、总条目数量都是固定的,因此可以用inode号码去索引查找inode表。

Inode存储了文件系统对象的一些元信息,如所有者、访问权限(读、写、执行)、类型(是文件还是目录)、内容修改时间、inode修改时间、上次访问时间、对应的文件系统存储块的地址,等等。知道了1个文件的inode号码,就可以在inode元数据中查出文件内容数据的存储地址。

文件名与目录名是“文件系统对象”便于使用的别名。一个文件系统对象可以有多个别名,但只能有一个inode,并用这个inode来索引文件系统对象的存储位置。

Linux系统使用struct inode作为数据结构名称。BSD派生的系统,使用vnode名称,其中v表示“virtual file system”。

POSIX标准强制规范了文件系统的行为。每个“文件系统对象”必须具有:

使用stat系统调用可以查询一个文件的inode号码及一些元信息。

系统管理员使用的很多程序往往用inode号码来替代文件名来访问文件系统。例如磁盘完整性检查程序fsckpfiles。因此,inode号码与文件全路径名的互查是需要的。可以用find带参数选项-inumls带参数选项(-i做到。

文件系统可能会用尽inode。这导致文件系统还有空闲的存储空间,但已经没有空闲的inode可供使用了。例如,一个电子邮件服务器可能会被大量的小文件用尽所有inode,但是却没有填满文件存储空间。

现代的文件系统,如JFS和XFS,能够动态地增加inode,因此不会用尽inode。

相关

  • 囊肿性纤维化囊肿性纤维化(英语:cystic fibrosis,缩写作 CF),亦称为囊性纤维化、囊肿性纤维变性、囊肿纤维症、纤维性囊肿或囊纤维变性,是一种常见的遗传疾病,此病症最常影响肺脏,但也常发生于胰
  • 结晶紫结晶紫(英语:crystal violet)或称龙胆紫(gentian violet),也称“甲基紫10B”,是一种三苯甲烷系染料。使用于组织学染色,也用在革兰氏染色试验中以区别不同类的细菌。具有抗菌、抗真
  • 心智理论心智理论(英语:Theory of Mind,缩写为ToM),心理学术语,是一种能够理解自己以及周围人类的心理状态的能力,这些心理状态包括情绪、信仰、意图、欲望、假装与知识等。自闭症通常被认
  • 肾小球基底膜肾小球基底膜(glomerular basement membrane、(GBM))是肾脏肾小球的基底膜层。肾小球毛细血管内皮细胞,肾小球基底膜及滤过裂隙介于足细胞之间执行肾小球的超滤作用(hyperfiltr
  • 珀塞尔亨利·珀塞尔(英语:Henry Purcell,1659年9月10日-1695年11月21日),巴洛克时期的英格兰作曲家,吸收法国与意大利音乐的特点,创作出独特的英国巴洛克音乐风格。他被认为是英国最伟大的
  • 半径样板半径样板也称(R规、R半径规、半径规、弧度规),是一种带有一组准确内、外圆弧半径尺寸的薄板,用于检验圆弧半径的实物的量具,圆弧半径在 1 毫米 ~ 25 毫米的成组半径样板有凸形样板
  • 总统图书馆富兰克林·德拉诺·罗斯福总统图书馆暨博物馆(Franklin D. Roosevelt Presidential Library and Museum)位于美国纽约州海德帕克,是第32任美国总统(1933至1945年)富兰克林·德拉
  • 优泌林胰岛素(英语:Insulin)是用胰岛素或胰岛素类似物制成的蛋白质类药物。药用胰岛素有很多种,包括速效型(如门冬胰岛素)和长效性(如地特胰岛素)等。胰岛素可以治疗多种疾病,包括糖尿病和
  • 马恩岛猫马恩岛猫(Manx),为一种原产于英国马恩岛的猫。这种猫的奇特之处在于,真正的纯种马恩岛猫是完全没有尾巴的,在普通猫尾巴的位置只有一个凹痕。在传说中,马恩岛猫由于较其他动物晚了
  • 1960年美国人口普查1960年美国人口普查(英语:1960 United States Census)是美国历史上第18次全国人口普查,确定了美国的常住人口为179,323,175人,相比1950年美国人口普查,同比增长为18.5。