Linux内核开发与实时系统详解
1. 开源社区与内核开发流程
1.1 开源社区贡献
内核如同其他开源项目一样,欢迎用户贡献代码。它是一个高度分布式的项目,全球各地的用户会定期贡献代码。开发者对代码进行修改后,提交包含这些更改的补丁,以便将其纳入主线内核项目。这就引出了几个问题:
- 如何创建补丁?
- 补丁该发送给谁?
- 提交补丁后会发生什么?
1.2 内核开发流程
内核项目采用滚动集成流程,即签入项目的软件应能正常工作且无错误构建。对于像Linux这样的大型项目,这不是一个人能完成的。每个主要子系统都有维护者负责审查补丁,确保子系统正常工作、符合内核代码标准并能正确构建。维护者名单可在Linux内核根目录的MAINTAINERS文件中找到。
维护者会准备好补丁队列,直到顶级维护者Linus Torvalds发邮件要求更改,开启所谓的合并窗口。维护者将排队的更改发送给Linus,他将这些更改与上一版本的源代码合并。这个过程会持续数周,直到合并窗口关闭。关闭后,只接受修复新接受代码中的缺陷或其他重大缺陷的更改。这些版本的Linux内核称为rc<序列号>,序列号从1开始,每次发布递增。大约每周会发布一个新的修复漏洞版本。当Linus认为代码足够稳定(即回归测试通过且内核维护者达成一致)时,会发布新的内核版本,循环再次开始。
1.3 贡献Linux内核
无论大小,贡献都受到欢迎。很多对内核做小改动的开发者认为这些改动不重要而不贡献。但如果你做的更改能解决问题、使内核更稳定或添加新功能,开源社区会欢迎。
提交代码给维护者时以补丁形式