os_lab
把操作系统里抽象的调度、进程、虚拟内存、文件系统和 IO 机制拆成可运行的实验。
实验范围进程 · 内存 · 文件系统 · IO
常用工具strace · perf · gdb
工程形式按主题组织的可复现实验
实验主线
系统调用 → 进程与调度 → 虚拟内存 → malloc / brk / mmap → inode / ext4 / 文件描述符 → 多线程 / 锁 / IO 模型 / 零拷贝。
每个主题都以现象为入口,再用系统工具观察内核行为,最后回到源码和数据结构解释原因。
代表实验
- CFS 调度与 FCFS、RR、MLFQ 模拟,对比不同调度策略。
- 用 strace 观察 brk/mmap 路径,用 hexdump、mount 和 inode 实验拆解 ext4。
- 对照 sendfile 与 read+write,理解零拷贝减少用户态参与的边界。
- 用并发计数、死锁和自旋锁实验验证竞态与同步代价。
实验原则
仓库的重点是把系统行为留下证据,而不是堆叠术语。实验数据会绑定环境、命令和输入规模,方便之后复现和修正。