基础篇|23.Linux 文件系统是怎么工作的?
Contents
目录项、索引节点、逻辑块以及超级块,构成了 Linux 文件系统的四大基本要。
1. 索引节点和目录项
文件系统,本身是对存储设备上的文件,进行组织管理的机制,组织管理的方式不同,就会形成不同的文件系统化。
文件系统的两种数据结构:
- 索引节点,简称inode,用来记录文件的元数据。比如 inode 编号、文件大小、访问 权限、修改日期、数据的位置等
- 目录项,简称dentry,用来记录文件的名字、索引节点的指针以及其他目录项的关联关系。(树状结构)
2. 虚拟文件系统
为了支持各种不同的文件系统,Linux 内核在用户进程和文件系统的中间,又引入了一个 抽象层,也就是虚拟文件系统 VFS(Virtual File System)。
VFS定义了一组所有文件系统都支持的数据结构和标准接口,这样用户进程和内核中的其他子系统,只要更VFS提供的统一接口进行交互就可以了
文件系统可以分三类:
- 基于磁盘的文件系统,也就是把数据存储在计算机本地挂载的磁盘中。Ext4、XFS、OverlayFS
- 基于内存的文件系统,也就是我们常说的虚拟文件系统。/proc文件系统、/sys文件系统
- 网络文件系统,用来访问其他计算机数据的文件系统。NFS、 SMB、iSCSI
3. 文件系统I/O
把文件系统挂载到挂载点后,就可以通过挂载点去访问它管理的文件了。VFS提供了一组标准的文件访问接口。
文件读写方式的各种差异,导致I/O的分类多种多样:
- 缓冲I/O与非缓冲I/O
- 直接 I/O 与非直接 I/O
- 阻塞 I/O 和非阻塞 I/O
- 同步和异步 I/O
4. 性能观察
容量
|
|
缓存
|
|
|
|
|
|
Author zhuyhan
LastMod 2020-06-21