Linux/Unix 文件系统索引节点浅析

索引节点,其英文为 Inode,是 Index Node 的缩写。索引节点是整个 Linux 文件系统的基础。存储于文件系统上的任何文件都可以用索引节点来表示。举一个例子来说,假设有一个老图书馆里面有一本登记簿,上面记录着馆内的书名及存放 位置,比如在哪一间的第几排存放着哪一本书,以及书的作者是谁。在这里,记录着一本书的那一行就是索引节点。索引节点以同样的方式来存储对象,我们会在下 面学习。

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

索引节点基础知识

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

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

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

# stat 01

1

-0500

-0500

-0500

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

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

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

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

发光并非太阳的专利,你也可以发光

Linux/Unix 文件系统索引节点浅析

相关文章:

你感兴趣的文章:

标签云: