前面把目录项、 inode、dentry、fd、硬链接这些概念理顺之后,再往下看文件系统时,很快就会碰到另一组特别容易混在一起的词:
- 文件 I/O
- 阻塞 / 非阻塞
- 同步 / 异步
- 缓冲 I/O
- 直接 I/O
- page cache
fsync
这些概念之所以容易乱,不是因为它们都难,而是因为它们其实不在同一个层面上。
有的在描述:
- 怎么打开和读写文件
2026/4/7...大约 19 分钟
前面把目录项、 inode、dentry、fd、硬链接这些概念理顺之后,再往下看文件系统时,很快就会碰到另一组特别容易混在一起的词:
fsync这些概念之所以容易乱,不是因为它们都难,而是因为它们其实不在同一个层面上。
有的在描述:
前面在整理进程、线程、同步这些内容时,我更多是在关注执行流和资源竞争。真正开始看文件系统之后,我发现这部分最容易让人混乱的地方,不是概念本身有多难,而是很多概念都长得很像:
如果不把这些层次拆开,就很容易越学越乱。所以这篇先不急着展开 ext4、日志恢复这些更底层的话题,而是先把文件系统里最基础的一条主线理顺:
一个路径到底是怎么被解析的,一个文件到底由哪些结构共同表示,磁盘上的结构和内存里的结构又分别是什么。