索引节点,Inode是Index Node的缩写,存储于文件系统上的任何文件都可以用索引节点来表示,所以也可以说索引节点是整个linux文件系统的基础。操作系统在读取硬盘的时候不是一个块一个块的来读取信息,因为这样做的话效率太低,文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为“索引节点”。
在Linux系统中,文件系统主要分为两部分,一部分为元数据(metadata),另一部分为数据本身。元数据,换句话说,就是包含了数据有关信息的数据。索引节点就管理着文件系统中元数据的部分。
元数据的基础知识:
在linux文件系统中,任何一个目录或文件都与一个索引节点相对应,而在索引节点表中包含文件系统所有文件列表,而每一个索引节点都是一个表,包含有关文件的信息(元数据),表中包含的信息有:
1、文件类型、权限、UID、GID
2、链接数(指向这个文件名路劲名称个数)
3、该文件的大小和不同的时间戳
4、指向磁盘上文件的数据块指针
5、有关文件的其他数据
文件的索引节点信息如下所示:
在linux中,如ext3/4文件系统在创建时就已经创建了索引节点,所以每个分区的所以节点是有数量限制的,但是系统会自动分配索引节点,保证inode的最大使用效率,当一个分区中所有的索引节点都被使用完后,就无法再创建新的文件了。
索引节点的指针结构:
系统读取数据的过程: