问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么unix系统中要引入索引节点

发布网友 发布时间:2022-03-28 14:20

我来回答

2个回答

热心网友 时间:2022-03-28 15:49

索引节点,其英文为 Inode,是 Index Node 的缩写。索引节点是整个 Linux
文件系统的基础。存储于文件系统上的任何文件都可以用索引节点来表示。举一个例子来说,假设有一个老图书馆里面有一本登记簿,上面记录着馆内的书名及存放

位置,比如在哪一间的第几排存放着哪一本书,以及书的作者是谁。在这里,记录着一本书的那一行就是索引节点。索引节点以同样的方式来存储对象,我们会在下
面学习。

在 Linux 系统中,文件系统主要分为两部分,一部分为元数据(metadata),另一部分为数据本身。元数据,换句话说,就是“包含了与数据有关信息的数据”。索引节点就管理着文件系统中元数据的部分。

索引节点基础知识

如上所述,文件系统中的任何一个文件或目录都与一个索引节点相对应。每个索引节点都是一个数据结构,存储着目标数据的如下信息:

文件大小(以字节为单位)
(存放文件的)设备标识符
(文件所有者的)用户标识符
用户组标识符
文件模式(所有者、用户组及其他人对于文件的读取有怎样的权限)
扩展属性(如 ACL)
文件读取或修改的时间戳
链接数量(指向该文件的硬链接数,记住,软链接不计算在内)
指向存储该内容的磁盘区块的指针
文件分类(是普通文件、目录还是特殊区块设备)
文件占用的区块数量

Linux 文件系统从来不存储文件创建时间,许多人都不清楚这一点。

一个典型的索引数据看起来会是像下面这样:

# stat 01

Size:923383Blocks:1816IO Block:4096regular file

Device:803h/2051dInode:12684895Links:1

Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)

Access:2012-09-0701:46:54.000000000-0500

Modify:2012-04-2706:22:02.000000000-0500

Change:2012-04-2706:22:02.000000000-0500

索引节点是在何时并以怎样的方式创建的?

索引节点的创建与正在使用的文件系统有关。一些文件系统在创建时就创建了索引节点,故其索引节点的数量有限。而一些如 JFS 和 XFS 等系统也在文件系统创建时创建索引节点,但使用动态节点分配,并按需扩大索引节点的数量,因此可以避免所有索引节点用完的情况。

当读取文件时都发生了什么?

当用户试图读取文件或与该文件相关的信息时,他会使用文件名称。但是,实质上这个文件名称首先映射为存储于目录表中的索引点节号码。通过该索引节点号码又读取到相对应的索引节点。索引节点号码及相对应的索引节点存放于映射表(Inode table)中。

索引节点指针结构

上面已经解释过,索引节点只存储元数据信息,其中包括真正的数据存储的区块的信息。下面就来解释一下索引节点指针结构。
如这篇维基百科上面的文章解释的那样,这个结构可能会有 11 到 13 个指针,但大多数文件系统会以 15 个指针的形式来存储数据结构。这 15 个指针包括:

直接指向文件数据区块的 12 个指针,称为直接指针(direct pointer)。
一个单独非直接指针(singly indirect pointer),指向一个由多个指针构成的区块,后者的指针又指向文件数据区块。
一个双重非直接指针(doubly indirect pointer),指向一个由多个指针构成的区块,后者的指针又指向一个由多个指针构成的区块,这一区块的指针又指向文件数据的区块。
一个三重非直接指针(triply indirect pointer),指向一个由多个指针构成的区块,后者的指针又指向一个由多个指针构成的区块,其指针又指向另一个由多个指针构成的区块,这一区块的指针又指向文件数据的区块。

热心网友 时间:2022-03-28 17:07

inode不是索引节点吧
inode是文件系统模块化的体现,在设计之初,就通过接口的设计理念,把虚拟文件系统vfs接口提取出来。而对于不同的文件系统实现,比如jfs,ext等,都可以很好的结合到vfs中,被unix使用。inode保存的是文件系统的元数据,比如打开一个目录,只需要知道这个文件的描述属性即可,内容可以在查看时候再读取硬盘。好比打开一个放了十几个视频的文件夹,只需要获得这些视频的属性名称即可知道有什么内容,此时只需读取很少信息即可,而要播放视频,再调用相关接口获得文件内容。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你好。本人最近想入手个 本本 知道你是高手望给点高见 3K以内。 惠普(hp)hp431(qg643pa) 与联想(lenovo)g460al-ith(h)该买哪一... 惠普4核1G独立显卡2G-4G内存的笔记本电脑有哪些型号的比较好?价位是多... hp 431-qg597怎么样?惠普质量真很差吗?它的商务本怎么样 hp431 qg597无线上网卡插在那里? 惠普HP431(QG643PA)笔记本经常死机自动重启 陆金所 德众金融理财可靠吗? 平安为什么建陆金所 陆金所有什么风险吗 100分问题:请问汕头市区哪里有卖“节节风”的中草要。 怎么让微信朋友圈的封面图片更长 微信朋友圈个性封面怎么换 微信朋友圈个性封面怎么改 适合中年人使用的朋友圈封面背景图有哪些? 怎样保存对方朋友圈封面?微信封面 怎样取得微信好友的朋友圈封面? 微信朋友圈个性封面图片素材分享 个性封面创... 微信朋友圈封面自动更换 怎么制作朋友圈封面,微信朋友圈封面怎么设计 微信发朋友圈怎么设置封面图 黄帝内经全文和白话文的TXT下载地址 求:重广补注黄帝内经素问序 白话文 《黄帝内经》谁写的白话文好 《黄帝内经》哪个白话版翻译注释的最好呢? <皇帝内经〉的要点共有几点? 黄帝内经里主要介绍了什么?为什么有人说35岁以下... 黄帝内经(绣像精装本)是文言文还是白话文 王洪图的《黄帝内经素问白话解》及灵枢白话解 黄帝内经 素问诊要经终论篇第十六 的白话翻译 《黄帝内经 素问》 白话文 《黄帝内经 灵枢》 白话文 学拉丁舞一般怎么收费? 拉丁舞收费标准 学拉丁 一节课大概多少钱啊 深圳哪有拉丁舞培训班? 南京去哪学拉丁舞好 如何选择合适自己的拉丁舞培训班 想学拉丁舞,哪个地方有比较好的培训班? 长沙哪里有学跳拉丁舞培训班? 北京成人拉丁舞培训班学费是多少? 南京有没有好一点的拉丁舞培训班,在新街口的,谢谢! 全国最好的拉丁舞培训? 拉丁舞入门课程零基础拉丁舞成年人培训? 威海市区哪里的拉丁舞学校教得好? 徐州哪里有拉丁舞教练培训班吗? 长沙哪里有好的拉丁舞培训班,最好专业一点的? 长春鸿宙拉丁舞成人交谊舞拉丁舞培训班学校孙老师... 深圳哪里学拉丁舞最好? 常州有拉丁舞培训中心吗? 北京哪里有好的拉丁舞培训班,最好专业一点的,麻... 我想学拉丁舞,在哪里学比较好?