inode

✍ dations ◷ 2025-12-05 00:58:22 #文件系统,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。

相关

  • 淋巴淋巴系统(lymphatic system)是循环系统的一部分,是由淋巴、淋巴管与淋巴结所组成。不单是回收剩余的体液,调控体内环境的平衡,也是身体内的免疫反应之处,逐步过滤保证个体的健康
  • 洗衣粉洗衣粉是洗衣服时,添加溶解在水中来清洗,使衣服更容易洗净的粉状物。洗衣粉的成分一般主要包括表面活性剂、软水剂、碱剂、漂白剂等,其中一些化合物或造成水污染。洗衣粉并不适
  • 羊毛甾醇羊毛甾醇(Lanosterol)是一种甾体化合物,分子式C30H50O,动物和真菌合成类固醇的过程中均经过此化合物。而植物的甾体合成则通过环阿屯醇。酶催化下,角鲨烯闭环形成羊毛甾醇,该过程
  • 红花红花(学名:Carthamus tinctorius)属菊科植物。红花又称红蓝、黄蓝,菊科红花属。这种花不宜与番红花相混淆。红花古称“烟支”、“燕支”、“胭脂”等,原产于西域。匈奴人认为妻妾
  • 大区大区(法语:région)是法国行政区划的第一级单位,下分为省。法国共有18个大区,其中13个位于法国本土(其中科西嘉地位较特殊,称为“领土集体”collectivité territoriale),其余5个则位
  • 吲哚吲哚(拼音:yǐn duǒ,注音:ㄧㄣˇ ㄉㄨㄛˇ,粤拼:jan5 do2,音同“引朵”、IUPAC命名:indole),是芳香杂环有机化合物,为双环结构,包含了一个六元苯环和一个五元含氮的吡咯环。因为氮的孤
  • 阴毛阴毛(又称耻毛、下体毛,英语:pubic hair),是生长在人类外生殖器、耻骨联合和大腿内侧上的毛发。据《金赛报告》,女性阴毛的发生最早出现在8岁,最晚18岁,极少数没有阴毛。现代生活营
  • 诺里库姆诺里库姆,是罗马帝国诸行省之一,是个紧邻帝国意大利本土的行省,公元前16年,罗马帝国的军队入侵阿尔卑斯山以东和多瑙河上游,征服当地居民,建立了雷蒂亚和诺里库姆两个行省,领土范围
  • DIEDIE或Die可以表示下列意思:
  • 喀喇沁左翼蒙古族自治县喀喇沁左翼蒙古族自治县(蒙古语: ᠬᠠᠷᠠᠴᠢᠨ ᠵᠡᠭᠦᠨ ᠭᠠᠷᠤᠨ ᠮᠣᠩᠭᠣᠯ ᠥᠪᠡᠷᠲᠡᠭᠡᠨ ᠵᠠᠰᠠᠬᠤ ᠰᠢᠶᠠᠨ,西里尔字母:Харчин Зүүн Мон