理解目录项、索引节点以及文件数据的关系:

文件系统,是对存储设备上的文件进行组织管理的机制。组织方式不同,就会形成不同的文件系统(Ext4、NFS等)。

在 Linux 中一切皆文件。不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。

Linux 文件系统为每个文件分配两个数据结构:索引节点(index node)和目录项(directory entry)。

索引节点,简称为 inode,用来记录文件的元数据。索引节点和文件一一对应,会被持久化存储到磁盘中。

目录项,简称为 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的关联关系。
多个关联的目录项,就构成了文件系统的目录结构。目录项是由内核维护的一个内存数据结构,通常也被叫做目录项缓存。

索引节点是每个文件的唯一标志,而目录项维护的正是文件系统的树状结构。
目录项和索引节点的关系是多对一,可以简单理解为,一个文件可以有多个别名。

磁盘在执行文件系统格式化时,会被分成三个存储区域,超级块、索引节点区和数据块区。
1.超级块,存储整个文件系统的状态。
2.索引节点区,用来存储索引节点。
3.数据块区,则用来存储文件数据。

《Linux性能优化实战》
展开
jsam于2020-02-27 14:14发布的图片
评论