6.1文件系统的基本组成
文件系统主要负责把用户的文件持久化存储到磁盘硬件中,这样即使计算机断电了,磁盘里的数据也不会丢失。
Linux最经典的一句话就是:一切皆文件。不仅普通的文件和目录,就连设备、管道、socket等,也都是统一交给文件系统管理的。Linux会为每个文件分配两个数据结构:索引节点和目录项。
(1)索引节点:记录文件的元信息。比如inode编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘中的位置等等。索引节点是文件的唯一标识,索引节点也存储在磁盘中,占用磁盘空间;
(2)目录项:用来记录文件的名字、索引节点指针以及与其他目录项的层级关联关系。多个目录项关联起来,就会形成目录结构,但它与索引节点不同的是,目录项是内核维护的一个数据结构,不存放在磁盘,而缓存在内存中。
【文件数据如何存储在磁盘中?】
磁盘读写的最小单位是扇区,扇区的大小只有512字节,如果每次读写这么小的单位的话,那效率会非常低。所以文件系统把多个扇区组成了一个逻辑块,每次读写的最小单位是逻辑块,Linux中的逻辑块大小是4KB,也就是一次性读写8个扇区,大大提高了磁盘的读写效率。