科普向(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驱动##秋招提前批启动你开冲了吗##嵌入式软开##牛客创作赏金赛#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
07-11 10:56
门头沟学院 Java
码客明:大胆的说自己能实习6个月就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务