第 22 章:从读仓库到读论文
源码导读的四次跳转
第一次从 README 找到创建示例,明确输入与返回值。第二次进入 API 路由,确认鉴权和参数处理。第三次跟到服务或控制器,观察状态记录与实际执行怎样分开。第四次寻找失败、重试、清理及相关测试。
不要把搜索到一个函数名当成理解整条链路。每次只追一个问题,例如“创建请求断连后,谁负责清理?”或“暂停是否释放内存?”记录你已经找到的证据,以及仍然没有确认的条件。
本书在附录 D 给出精确到提交的阅读入口。你可以先读中文解释,再打开同一快照对应的文档和代码,避免仓库继续更新后找不到相同内容。
论文、设计文档与 README 的角色
论文通常解释机制、权衡和实验方法;设计文档解释工程拆分和接口约束;README 帮你快速上手。论文不能替代当前配置文档,README 的一行能力介绍也不能替代实现证据。
本版的核心工程解析主要基于四个仓库的文档与选定源码;第 25 章补充 Firecracker 与 Catalyzer 导读,仍不宣称完成系统论文综述。关于 Firecracker,可以继续阅读 Agache 等人的《Firecracker: Lightweight Virtualization for Serverless Applications》(USENIX NSDI 2020):
https://www.usenix.org/conference/nsdi20/presentation/agache
第 25 章按实际取得的资料说明阅读范围,本版没有据论文中的性能数字为四项工程作比较。先理解第 3 章中的客体内核、VMM 与 KVM,再读论文,会更容易判断它试图解决什么问题。
把阅读变成一页笔记
对每项工程写五句话:它接收什么请求;在哪里执行;谁实施权限边界;状态保存在哪里;失败后谁清理。最后补上来源路径与提交号。
完成标准是能讲出一条真实执行路径,并能指出哪里需要进一步实测。你不需要在第一周部署所有平台;先看懂一项工程的完整闭环,再横向比较,学习负担会小得多。