开源与开放 魅族BSP工程师揭秘安卓的内核世界

来源:开源中国社区 作者:加哥Chage
  

稿源:加哥Chage

这一个星期,我专访了已经在魅族工作了 5 年的 BSP 优化工程师吴章金以及他背后的魅族内核团队。

吴章金   年龄:31    出生:江西修水    职位:BSP 高级经理   毕业:兰州大学  在职:5 年

我对江西人印象一直停留在两个字上。

内敛。

吴章金也是如此,平头方脸,古铜色皮肤,说话声音不大,但稳而有力。

吴章金是那种一眼就能看出来的学霸类型,即使他没有向我提及他学生时代在课本上的付出,但我依然能从他身上闻到一股浓浓的墨水味。

吴 章金是生于 80 年代的贫苦一代,家里赖以生存的就是那一亩三分地。吴章金家中共有三兄妹,而生为长子的他有着和传统中国农家孩子一样迫切想要担当一切的责任意识,并且坚 信知识改变命运的真理,于是 03 年吴章金以极其优秀的成绩考入了兰州大学的计算机系,而转折就从这里开始。

2003 年正值国内积极推广 Linux 的时期,而兰州大学正好是国内第一批建立高校 Linux 推广中心的大学,这给刚刚踏入计算机科学大门的吴章金提供了一个绝佳的平台,Linux 开源平台。

早 年国内对 Linux 平台的扶持其实相对欠缺,吴章金在大学里获得的这次深入了解 Linux 的机会实际上非常难得,而实干的性格也让他不甘于只是做 Linux 的受益者,于是他开始积极参加学校 Linux 的推广活动,并逐渐成为学校 Linux 推广的发起人之一。

在学习了一年 后,吴章金和其他几个 Linux 爱好者开始筹备组建学校的 Linux 开源社团,在组建社团的过程中,他大量的接触到了 Linux 内核方面的相关知识,并开始重新思考 Linux 对于他的现实意义,也就是从这时开始,吴章金决定全身心的投入 Linux 当中,而他的目标就是让自己成为 Linux 开源世界的贡献者,而不仅仅是受益者。

他和同学们一起组建的兰州大学 Linux 开源社团在之后的 10 几年里,一直有条不紊的发展着,如今这个 Linux 社团每年依然会给全国许多大型企业提供优秀的 Linux 开发人才。

2007 年,吴章金本硕连读被保送了兰州大学研究生,开始细分化的在 DSLAB 实验室主攻分布式与嵌入式系统的研究,而其主要研究的方向则是当时门槛相对较高的实时系统(Real-time System),早年国内对于实时系统的研究还处于相对比较靠后的状态,吴章金打开大门的钥匙来自大量的外国文献以及他的导师,来自奥地利的 Nicholas教授,前沿的技术资料与欧洲人严谨的治学思维给吴章金深入学习 RT-Linux 等实时系统带来了深远的影响,而在研究生期间的学习也使他更加看清了开源世界的得与舍。

2009 年,吴章金在经过了两年的深入学习后,得到了一次在江苏中科龙梦的龙芯产业化基地实习的机会,这时的龙芯产业正属于高速发展期,需要大量的专业人才来给其 芯片构建生态环境,而当时吴章金的工作,就是把社区的 RT-Linux 移植到龙芯上,并把调试后的源代码再贡献给开源社区,在这一段的工作时期,吴章金第一次感受到了成为开源贡献者的喜悦,为开源社区上传了大量的龙芯 Linux 内核的代码,并一跃成为官方 Linux 社区华人贡献排名前 30 位的成员。

2010 年,在 Linux 圈内小有名气的吴章金收到了当时大名鼎鼎的美国 WindRiver(风河)发来的 Offer,希望他能入职风河进行实时系统的开发工作,这个机会成了吴章金把技术理论转化技术实践的跳板。

普 通消费者对于 WindRiver(风河)可能相对陌生,但对于长期研究嵌入式操作系统的吴章金来说,风河却是他曾经一直向往的企业之一,风河是全球知名的嵌入式系统开 发公司,于 2009 年被英特尔全资收购,风河在嵌入式系统领域的研究水平属于全球顶尖,其开发的 VXworks 等嵌入式系统被广泛的应用于军事、航空航天等尖端科技领域。

2011 年,在风河工作了一年的吴章金注意到了安卓的飞速发展,预感到 Linux 向消费电子靠拢的大潮即将袭来,于是吴章金和几个朋友尝试组建了一个 Linux 的技术组织,希望为国内的一些企业提供 Linux 的技术支持,而正是这时,才刚刚转型安卓的魅族,找到了吴章金。

魅族的技 术骨干梁东明(魅族 CTO)在 M9 的初期开发阶段就遇到了安卓内核开发方面的阻力,并意识到如果要开发出一款稳定的产品,BSP 方面的人才不可或缺,于是愿意为企业提供 Linux 内核底层技术帮助的吴章金成了梁东明的目标之一,在经过了几次交谈后,梁东明有意招揽吴章金的想法越发显现。

在 2011 年的 5 月,梁东明向吴章金表明了自己想要招揽他的意图。

经过两个月的长考后,吴章金最终放弃了风河的机会,选择了魅族。

在聊到最终选择魅族的原因的时候,吴章金的回答让我有些意外。

「你可能不相信,我选择魅族的理由更多是因为一种理想色彩,因为我觉得国产应该还能做的更好,对于我这种生于贫困的 80 后而言,民族自豪感,梦想,这些从小就耳濡目染的词汇已经深层次的影响了我的人生,而魅族是具有这些基因的公司,我想这是我最终选择魅族的理由。」

吴章金这一干就是 5 年,这个内敛的江西人在 5 年前刚入职时就规划了未来 10 年的目标,而如今 5 年已经过去,吴章金似乎已经提早一步完成了他所预定的设想。

问答:

1.用通俗的话来说,你觉得 BSP 团队在手机的研发过程中起着怎样的作用?

吴: 「我想用一张图就能够很好的体现 BSP 研发在整个安卓智能手机开发中的作用。」

「 红色标记的就是 BSP 主要负责的模块,这当中包括了 HAL(硬件抽象层)、BootLoader(硬件初始化管控)、Linux&Device Driver(Linux 内核驱动)三个部分。」

「BSP ( Board Support Package ) 实际上是介于硬件和系统之间的桥梁,一方面要引导和驱动各种底层硬件,另一方面要为安卓系统提供包括任务调度、文件系统、电源管理在内的各种操作系统服 务,虽然消费者不能直接感知,但它就如人的血液一样,无时无刻不在协调整个手机系统的运行,确保它在一个正常的环境下运转。」

「 更具体的来说,BSP 在手机的稳定性、发热、性能、续航等方面都起着相当重要的作用,而这些基础指标的优化也是我入职魅族的这几年一直在做的工作。」

2.能简单的介绍一下自己平时的工作么?

吴: 「这需要从手机的开发流程说起,手机从立项到最终上产线需要经过非常多的中间步骤,而我们几乎在每一个过程中都需要参与。」

「其中最关键的在于 B1-Bn 的阶段,在这中间内核团队需要进行大量功能开发、移植和验证工作,以确保硬件开发板或者手机板的正常启动,并顺利引导内核加载,完整驱动各项外围器件。」

「同 时我们还需要进行安卓系统的适配,进而完成手机上第一个可运行的原生 Android 系统,之后再交付给 Flyme 部门,协同进行深度开发和客制化。在之后团队还要负责产线用的工厂固件和测试工具的开发调试工作,并进行大规模的功能和系统测试,深度优化各项系统的用户 体验。」

「在 MP 阶段最终量产后,团队还要对出厂固件进行稳定性等多方面的测试工作,在产线生产时,每台机器还要进行各种产线器件测试和长达数小时的整机老化和压力测试。」

3.稳定性、续航等这几个点都是消费者非常关心的,在你参与研发的魅族的几代产品中,侧重点是否有不同?

吴:「 我把这看成是一个循序渐进的过程,而且很幸运的是我亲眼目睹并全程参与了这一变化过程。」

「手机系统的研发实际上是一个金字塔结构。」

「早 期在公司转型 Android 智能手机的时期,我们有限的资源着重放在了可用和能用两个方面,M9 时代是在功能研发和 Android/Linux 技术积累的阶段,而在 MX 和 MX2 时期,我们开始投入大量精力做预研,去确保手机的系统稳定性,到了 MX3 时期我们则与结构等部门配合,更细化的着手于温控,而在 MX4 之后,我们与 Flyme 部门一起协同配合,开始调度更多资源加大力度侧重于优化续航和性能,这整个过程是循序渐进的。」

「功 能和硬件参数的堆砌,其实大部分厂家都能做到,但是在消费者看不见的地方保持领先,却很难,我在魅族已经工作了 5 年,魅族的硬件研究已经发展了 13 年,这当中所积累的技术经验已经开始慢慢的体现在产品上,罗马不是一天建成的,这种已经不怎么新鲜的旧道理放在如今的手机行业里其实依然适用。」

4.能进一步的聊一聊现在消费者们非常关心的手机续航和性能么?

吴: 「我在两年前写过一篇 MX3 的省电技术详解(魅族 MX3 Flyme 3.0 省电技术详解 )除开里面所提到的电池容量、充电速度等基础硬件条件外,我着重谈到了手机系统功耗控制的细致化,这里我可以给你举一些在功耗控制方面的例子。」

•通过 PM Qos 更细致地管控系统资源

•在 CPU 的调度,GPU、HWC的硬件使用上都做更多场景化的调校

•屏幕自刷新技术(Panel Self Refresh)的改进,图形显示的优化,在特定的动画设计帧率上进行调整

•开发三挡模式,让用户可以根据实际需要选择节能优先还是性能优先,还是两者均衡

•开发省电模式,把手机核心的频率等控制在一个更低的范围内

•与Flyme合作,共同在应用控制、应用自启动、广告推送、弹框等方面进行限制和优化

•与第三方或者社区合作,进行新的省电技术的开发和预研

「这 只是其中很小的一部分,有些调校对于续航的影响可能微乎其微,但是每精确控制到一毫安的耗电量,积少成多,最终的体现就会非常明显了,我们在续航方面其实 做出了许多消费者不曾感知的努力,这个过程耗时非常之久,在整个产品迭代的过程中这其实也是我们一直在不断攻克的问题。」

「而我们团队在性能方面主要解决的并不是芯片的绝对性能问题,而是如何保证系统的流畅性,也就是消费者经常提到的不卡。」

「在这几年的时间里我们做了大量的用户场景调研,并且在提升性能的一些方面做了许多的优化工作,我同样可以举一些列子。」

•通过大量的样本数据对应用算法、内存泄露等问题排查

•更加细致化的频率、核数的资源配置调度

•硬指标的要求所有开发者遵守开发规范,消除过度绘制等问题

•采用bootgraph.pl等脚本更好的检测内核启动数据等性能参数,更好的发现问题

「实 际上性能和续航一样,是需要细致和精确的进行优化的,而且这两者之间是有许多相关性的,优化工作是一个非常庞大的工程,除开我们 BSP 团队的内核方面的优化,Flyme 也有专职的团队做对应的优化工作,这两块的最终改善是各个部门协调工作共同配合的结果,2015 年我们的产品已经在这方面达到了一个相对让消费者满意的水准。」

5.在魅族工作的这几年,超出你预料之外的事是什么?

吴: 「用户的爆炸式增长所带来的 BUG 复现问题。」

「 这是我在 2014 年公司销量飞速增长后所没有预料到的,普通消费者可能很难以理解用户增长实际上对于技术研发人员是一个巨大的压力,过去我们很多难以复现的 BUG,因为用户数成倍的增长而爆发了出来,也就造成了在魅族飞速发展的阶段有一段时期我们有些控制不住产品的 BUG 显现情况,这对于我们 BSP 底层驱动的稳定性提出了极大的考验,用户数从 200 万到 2000 万,就像每天本来吃 3 碗饭,如今每天吃 30 碗,这必须要有一个适应的过程。」

「 早期我们的压力测试主要是人工刷固件并模拟用户的使用习惯进行黑盒测试,这种方法的复现压力小,覆盖窄,效率低,很难及时发现一些隐性的 BUG。而在之后采用自动化测试后,我们采取刷入软件模拟用户点击的方式,可以同时在上千台的设备里进行测试,效率大大提高,很多隐性问题都得以解决。同 时我们加强了 RAS 方法的架构研究和部署,通过对潜在缺陷循环的优化,改善了整个问题的解决效率和部门的运作效率,在这一系列的措施实施后,BUG 复现问题逐步得到了解决。」

6.你最满意的作品是哪一款?

吴: 「 PRO 5,PRO 5 基本上已经成为了整个魅族 13 年的集大成之作,它赶上了我们 BSP 优化的四大基础指标完善的时代,赶上了三星的 14nm 的工艺,赶上了深度优化过的 Flyme5,PRO 5 可以说是含着金汤勺出生的,它的整体表现已经达到了我刚入魅族时所设想的预期,无论是稳定性、续航、性能、散热、PRO 5 都已经达到了一个相当优秀的水准。」

7.你觉得未来手机核心研究的方向是什么?

吴: 「首先,目前所有的智能手机的智能程度还很弱,未来在大数据,智能语音,图像识别,传感器等技术逐步成熟后,智能交互可能会大大改观。」

「其次,在手机硬件同质化非常严重的今天,大家都会注重一些技术突破和创新,差异化和个性化会逐步得到体现,比如三防,双屏,曲面屏,大电池等技术都会逐步常态化。」

「而 眼下我觉得最应受关注的应该是安全性,在人们过上富裕生活后,担心的就是自己口袋里的钱会不会不翼而飞,同样在手机的流畅续航等方面已经做到出色的水平 后,如何保证手机的安全性是我们现在正在攻克的问题,安全实际上一直是刚需,只不过在之前,手机行业普遍在其他方面做的还不够好。我想在这两年,安全会再 次被拉到一个非常受关注的高度。」

8.来魅族的这几年,自己最大的变化是什么?

吴: 「更加从容。」

「刚来魅族的那两年,每天都要面对大量的 BUG,大量的调试工作,巨大的压力经常压的自己喘不过气来。」

「而这两年公司步入正轨后,自己的工作压力则减轻了很多,因为各方面的框架已经相对完善,能调动的资源也更加充足,这也使得我们有机会留出更多的空间做一些更长远的规划,而不是仓促的忙于当下。我想用一句话来形容自己和内核团队这些年的变化是再合适不过了。」

「从疲于奔命到未雨绸缪。」

9.如何看待 Linux 国内行业的现状?

吴: 「从业者很多,但专家很少,大部分圈内的 Linux 从业人员都是些知道的多而浅的伪专家,很少有对某一方面有深入研究的真专家,这实际上也体现出国内现在的年轻人缺少沉下心来学习的态度,更多的是求一个生存,求一个安稳。」

10.对于 Linux 你有什么样的情感?

吴: 「我是开源 Linux 的受益者,同样也是开源 Linux 的贡献者,如果我的人生有重来的机会,我想我还是会选择 Linux,从兴趣变成了工作,并变成生活中不可分割的一部分,我从中受益良多。其实年轻的时候并没有想到开源环境在整个社会当中所具有的价值,而如今接 触的多了,越发感受到开源能给完善它的人以生存机会,给使用它的人以便利,这是一个良性的循环。」

开源文化与开放精神

这是我在这次访谈后最想提及的两个词,在面见吴章金之前,我脑海中刻画的吴章金是一个专注而不善言谈的技术宅,而在谈话中,他一直向我阐述他自己对 Linux 的态度,对开源的态度,这都让我感觉他更像一个探路者,在探索开源文化与开放精神的道路上不曾停息的探路者。

吴章金的微信头像是 Linux 里那只叫 TUX 的企鹅,他身边一直用的水杯上画的也是那只 TUX,我很少见到把生活和工作融入在一起的人,但吴章金是个例外。

如今已经 31 岁的吴章金既是一个好丈夫也是一个好父亲,虽然他的生活已经被每天的计划填的很满,可他依然会抽出时间去筹备线下的 Linux 沙龙交流活动,他对于 Linux 的那份热爱,不曾减弱。

「这两年我依然能感受到自己每次修改新产品 Linux 内核的那股子欣喜,我除了把它当成工作,更把它当成了一种爱好,我觉得这是我这辈子最大的幸运。」

这是他在 Linux 圈混迹的第 10 个年头,这是吴章金,魅族的 BSP 工程师,开源文化的探路者。

新浪微博: 吴章金falcon


时间:2016-03-26 09:35 来源:开源中国社区 作者:加哥Chage 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量