1、LF开源教育及人才培养专场郭寒军 2021年8月1日我的Linux内核开发和应用的十年 Linux在国内发展的黄金十年国内开发人员在Linux内核贡献占比逐年攀升知微见著,Linux内核的投入,其实是国内开源系统软件投入的一个缩影,技术的发展催生了大量开源需求,个人也会随着这个大潮得到成长。050001000015000200002500005001000150020002500300035002.6.372.6.382.6.393.03.13.23.33.43.53.63.73.83.93.103.113.123.133.143.153.163.173.183.194.04.14.24.34
2、.44.54.64.74.84.94.104.114.124.134.144.154.164.174.184.194.205.05.15.25.35.45.55.65.75.85.95.105.115.125.1310年来Linux内核版本补丁数量趋势中国开发者全球开发者线性(中国开发者)线性(全球开发者)开发者数量:从每个版本约100开发者,到目前每个版本约450开发者;补丁数量:从每个版本600左右,到5.10版本的3000+;数据来源:https:/ ARM64 ACPI,成为ARM64 ACPI Maintainer;17年-20年,华为内部内核版本维护,内核版本规模应用到海量产品20
3、年-now,openEuler内核Maintainer我的第一个内核补丁从驱动开始,做热插拔特性时,解决启动过程中的一个bug实际项目中实战,解决问题,加上明白人带路,成长加速第一个小挫折Maintainer直接说我”papering over a problem”需要深刻理解代码逻辑,从根本上去解决问题,不要尝试“规避”问题适应社区的交流方式,直接,但一般对事不对人,奔着解决问题的心态去交流。ARM64生态构建 社区开发维护能力成长关键期13年下半年开始,外派在Linaro,和ARM,Linaro,Redhat,高通,Cavium,微软等一起构建ARM64 服务器生态,从基础规范开始,如AC
4、PI(一种软硬件解耦方案),然后upstream Linux内核主线。之前在x86架构上积累的技术能力派上用场在Linaro项目组起到关键作用发送补丁到社区主线发现ACPI规范支持ARMv8有多个特性缺失与DT(设备树)支持者Argue,在ARM上是否要支持ACPI?ARM64 ACPI功能开发华为,ARM,redhat,高通,微软等一起制定ACPI规范支持经常周四晚上12点到1点开完会议后,周五早晨6点半起来开ACPI工作小组会议6个月发布ACPI 5.1规范,史上最快的一个ACPI规范版本与DT支持者Argue,在ARM上是否要支持ACPI?ARM64 ACPI规范开发基于ACPI 5.1
5、规范,完成新功能的开发验证;Upstream到主线,根据意见反馈,重复迭代版本与DT支持者Argue,在ARM上是否要支持ACPI?终于与社区达成一致,只在ARMv8的服务器场景使用ACPI,并保持与DT的内核二进制兼容ARM64 ACPI upstream补丁集前后迭代10多个版本后,在4.1内核(15年)进入主线,有了基础支持;过程中得到了很多人的帮助和支持,协助review/测试补丁;也得到了公司的全力支持,参加各种线下会议,面对面与maintainer交流ARM64 ACPI 进主线消化大量新的技术点,构建技术能力;开源社区线上线下交流,与合作伙伴一起推进;坚持,不要放弃!ARM64生
6、态构建 社区开发维护能力成长关键期持续投入,持续贡献,16年成为ARM64 ACPI maintainerACPI 5.1规范使能,最基础的boot使能能耗管理支持,包括ARM平台的CPU频率调节,休眠调节中断GICv3支持,MSI支持PCIE支持NMUA支持,其它ACPI规范更新比如ACPI 6.0,6.1的修改;RAS支持等IO拓扑支持,4.12内核已经能较完善支持ARM64服务器各种特性CPU拓扑支持,4.18内核;维护内核版本规模应用 另外一个关键成长期Linux内核 多CPU架构支持 多硬件支持 定制特性