4 文件系统概述
什么是文件系统?
文件系统是操作系统管理存储设备上数据的方式,提供数据的存储、检索、更新和保护等基本功能。Linux 的文件系统架构是其最强大的特性之一。
Linux 文件系统特点
1. 一切皆文件
Linux 的核心理念是"一切皆文件":
- 普通文件- 存储数据
- 目录- 组织文件
- 设备- I/O 设备抽象为文件
- 管道- 进程间通信
- 套接字- 网络通信
- 符号链接- 快捷方式
2. 虚拟文件系统 (VFS)
Linux 通过 VFS 抽象层支持多种文件系统:
本章学习目标
通过本章学习,你将:
- 理解 VFS 虚拟文件系统的核心数据结构
- 掌握文件系统的注册和挂载流程
- 理解通用块设备层的工作原理
- 深入理解 ext4 文件系统的实现
- 掌握页缓存和回写机制
核心概念
| 概念 | 描述 |
|---|---|
| VFS | 虚拟文件系统,抽象层 |
| super_block | 超级块,文件系统元数据 |
| inode | 索引节点,文件元数据 |
| dentry | 目录项,路径解析缓存 |
| file | 文件描述符,用户空间视图 |
源码位置
| 文件 | 描述 |
|---|---|
fs/namei.c | 路径解析 |
fs/dcache.c | 目录项缓存 |
fs/inode.c | inode 管理 |
fs/file.c | 文件操作 |
fs/super.c | 超级块管理 |
fs/buffer.c | 块缓存 |
block/blk-core.c | 块设备层 |
fs/ext4/ | ext4 文件系统 |
下一节:VFS 虚拟文件系统
