注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

中国有了首位gcc维护者  

2015-01-22 13:36:56|  分类: it社会 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
杨飞,中国第一位GCC的Maintainer,2014年10月正式成为GCC(开源编译器)社区Maintainer(维护者),媒体报道说,中国公司第一人,也许就是中国第一人。至于GCC是什么,也可以理解为"将你的C代码翻译为计算机硬件听懂的语言"的那个同声翻译专家。那么,地球上这一帮子Maintainer,就是一些“对着0-1虚拟黑洞”打造那个翻译家代码高手。
开源社区又称开放源代码社区,是全球范围软件开发者集中地。开源的最大特色在于开发人员和使用者可以观看内码,修改程序,软件源代码自由流通,不受知识产权约束。这激发了世界各地的软件开发人员投入到开源软件的开发中,用户和代码贡献者以合作的形式来进行软件开发。

开源系统,是一个很好的学习、交流、共享平台。在开源社区,参与者可以及时发现并共同解决程序中存在的问题,提高软件性能,软件开发人员的集体智慧得到充分发挥。华为自研编译器基于开源GCC编译器开发,是开源社区的直接受益者。最初华为编译器团队与开源社区的互动只是索取,如:引入开源社区先进的开发和测试方法,及时同步重要补丁。杨飞和同事们订阅的开源社区邮件列表每天光PATCH就几十个,不断改进代码。如果不能及时吸收消化相关技术,很快就跟不上开源社区的发展步伐。随着业务发展和技术进步,杨飞开始在社区提出问题并参与讨论。开源社区有很多经验丰富的世界级专家。杨飞团队在自研编译器开发过程中曾遇到过一个非常棘手的技术难题,费了很大力气也没找到满意的方案。最后,将问题发送到GCC社区,社区专家们纷纷提出建设性的意见,甚至给出解决方案。实际上,linux能把INTEL的硬件、ARM的CPU支持得那好,开源队伍中没少他们的高手员工。即便是microsoft这个把linux看作死敌的公司,能够让linux与windows互访,没有少了微软公司的linux开源代码。也许这就是开源经济的一个注解。

回头再说华为极客,华为杨飞回馈社区源于一次教训。在杨飞团队开始做V1R3项目时,经历了开源基线版本的升级,这时杨飞有点傻眼了,因为版本升级意味着前期辛辛苦苦在老版本上做的修复全部清零,需要在新版本上重复修改,而新版本变换了很多接口,因此这个修复工作特别麻烦、特别耗损时间与精力。自此,杨飞才意识到应该将这些修复方案回馈社区,贡献社区,实际上是方便了团队自己。这不仅可以极大地减少因为版本升级带来的维护成本,还能促进社区发展。相信随着中国越来越发展的智力体系下,中国越来越多的企业可以认识到这一点。目前openstack项目中,有多少代码是中国企业级的代码贡献呢?有时候开源只是客观上的道德模范。

于是,杨飞提交了第一个补丁。然后就有了很多故事......
开源社区活跃着很多专家,很多人具有二三十年的开发经验。想在这里站稳脚跟并不容易,首要事情就是建立起个人的技术影响力。于是,杨飞利用更多的业余时间 去钻研编译优化技术,经常一头扎进开源的代码海洋中,去发现源代码中的一些隐藏Bug,大胆假设,小心求证,提出修复方案,调试代码到凌晨一两点也是常 事。他还积极参与社区讨论,发表自己的见解,对公共问题积极回应。

杨飞明白,虽然华为在社区的贡献排名稳步上升,是贡献最大的中国公司,但仅仅作为一个贡献者能给公司带来的价值还很有限。如果要构筑高价值链生态圈,引导开源社区的发展向华为公司利益倾斜,必须成为社区Maintainer(维护者)。随着华为自研编译器开发工作的不断深入,杨飞团队发现开源编译器自身存在一些原生Bug,于是识别了这些潜在问题后一一修复。经过两年多的努力,杨飞为社区贡献20多个关键补丁的修复方案,逐渐在社区建立影响力并获得越来越多维护者的认可。有一次,杨飞发现GCC编译器中最核心的寄存器分配模块隐藏一个严重问题,并通过海量的测试和验证,顺利实现问题定位。杨飞们将问题场景和方案建议发到开源社区后,立刻引起社区的广泛讨论。这时,社区最高领导者——GCC指导委员会成员Jeffrey A. Law开始重点关注,与杨飞进行深入交流,杨飞提出的修复方案得到他的的大加赞赏,甚至主动提出推荐杨飞成为GCC Maintainer。Jeffrey A. Law对杨飞的评价是:“你对GCC这个领域的理解很深刻,这个方案是我没有想到过的。”

接下来,媒体这么推演:在Jeffrey A. Law的支持下,杨飞的Maintainer申请很快获得批准通过,2014年10月7日,正式成为中国公司第一位GCC Maintainer。在编者看来这是一次“国产操作系统”级的突破,肯定比"透明计算"来得明白与实际。

华为ARM64是一个开放的处理器体系结构,这是华为芯片战略的重要一环。依托开源社区,杨飞所在的中软欧拉六部编译器团队实现华为自研编译器的重大突破,巧妙地解决了无线产品代码在ARM64处理器上的移植问题,极大地节省人力成本,并有效提升性能。有了这个技术作为支撑,华为ARM64自研核的设计与实现将大规模简化,进而推动芯片的能耗比上升一个新台阶。

推动gcc社区不断优化和完善的同时,使华为自研代码内容成为事实上业界标准,助力无线产品线业务确立业界领先地位。希望更多中国义士贡献智慧,那样也才能有更多的中国产品服务全世界,也才对得起越来越开源开放文明......
  评论这张
 
阅读(170)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017