Unix 文件系统
Unix 文件抽象、inode、文件描述符、stdio 缓冲行为。COMP1521 系统编程的基础。
Unix 哲学的核心之一是「一切皆文件」(everything is a file)。本主题理解这句话背后的具体机制:
- inode:文件在内核中的「身份证」,与文件名分离;为什么硬链接能成立。
- 文件描述符 (fd):进程怎么持有打开的文件;父子进程之间怎么共享 fd;
dup/dup2在做什么。 - stdio 缓冲:
printf和write的区别;为什么printf("hello"); fork()会输出两次 “hello”。
学完本主题,你应该能解释:打开一个文件后,kernel 维护了哪些数据结构,以及为什么这些结构那么设计。
笔记
- inode 到底是什么
用「名字 / inode / data block」三段映射理解 Unix 文件系统的核心数据结构。