科普向(2):Upstream kernel
1.什么是upstream
Publication vs Upstream
Publication: 把downstream代码转变成公司的公开平台
Upstream: 把公司的公开平台的代码串到kernel.org
2为什么需要upstream
2.1 成本管理
Android的年度更新会出现市场对齐问题
- 与主线内核节奏不一致,导致适配困难。
- 存在机会成本:投入大量资源维护旧内核,错失新技术。
- 容易引入回归问题,影响系统稳定性。
对于自行维护发行版的客户来说,上游支持是基本需求
2.2降低SOC采用门槛
upstream支持可以消除SOC采用的障碍,合作伙伴不再需要频繁依赖高通提供支持,扩大潜在市场
2.3提高软件生态与易用性
Intel之所以获得更高的均价,跟开箱即用有一定关系。并且上游代码意味着更好的兼容性和更少的定制工作
2.4安全性
新内核通过社区持续维护,潜在安全问题更少,社区修复的安全补丁会自动应用到QC的上游代码中
3.linux kernel开发周期
比如6.10,最开始两周是merge window,用于合并新功能和重大改动,随后会每周出一个rc, rc1/rc2/rc3,一直到rc8, 然后变成下一个版本6.11,rc的意思release candidate,候选发布
向upstream提供代码:
1)修复类:随时
2)新功能/代码清理:越早越好,最好rc1/2
4.如何upstream
上游所需关键步骤
1)根据主线结构重新设计代码以适配主线
2)重构代码,可能需要部分或完全重写(大补丁拆成多个小补丁)
3)接受建设性批评,maintainer和reviewer会对补丁提出各种建议
4)持续跟进代码质量(v1->收到建议并修改>v2/v3...->合并)
最后贴一个文档,linux官方
https://docs.kernel.org/process/submitting-patches.html
#嵌入式##linux驱动##秋招提前批启动你开冲了吗##嵌入式软开##牛客创作赏金赛#