索引节点,Inode是Index Node的缩写,存储于文件系统上的任何文件都可以用索引节点来表示,所以也可以说索引节点是整个linux文件系统的基础。操作系统在读取硬盘的时候不是一个块一个块的来读取信息,因为这样做的话效率太低,文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为“索引节点”。

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


元数据的基础知识:

  在linux文件系统中,任何一个目录或文件都与一个索引节点相对应,而在索引节点表中包含文件系统所有文件列表,而每一个索引节点都是一个表,包含有关文件的信息(元数据),表中包含的信息有:

  1、文件类型、权限、UID、GID

  2、链接数(指向这个文件名路劲名称个数)

  3、该文件的大小和不同的时间戳

  4、指向磁盘上文件的数据块指针

  5、有关文件的其他数据

文件的索引节点信息如下所示:

wKiom1edxv7zhI-mAABRH5P4l6U210.png  在linux中,如ext3/4文件系统在创建时就已经创建了索引节点,所以每个分区的所以节点是有数量限制的,但是系统会自动分配索引节点,保证inode的最大使用效率,当一个分区中所有的索引节点都被使用完后,就无法再创建新的文件了。


索引节点的指针结构:

wKioL1ed1TGyKUMvAACJEJnFj80169.png系统读取数据的过程:

 wKioL1ed2vKBJGkXAACXGri9Iu0029.png