RISC-V开源基础软件技术和生态建设--回望Linaro



  • 讲讲Linaro的故事

    时代背景

    2007年11月,谷歌公司正式向外界展示Android操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织。

    2008年6月,苹果发布的第一代iPhone。

    2010年2月,诺基亚与英特尔联盟发布MeeGo

    2010年11月,Linaro首个芯片与软件工具版本正式推出。

    2011年的LinuxCon会议,Linus Torvalds讲到有关ARM和Linux关系的问题时表示,ARM的高效对比x86的笨拙是一种非常有前途的发展方向,但却令人又爱又恨。最不足的地方就是缺乏类似x86 PC世界的平台标准,ARM的硬件非常杂乱,就像一锅大杂烩,没有集中精力去打造一个框架,以至于Linux希望去支持ARM体系时非常困难。

    (画外音:2010年的中国发生了什么事?;玉树市7.1级大地震;谷歌宣布将在中国的搜索服务搬到香港;2010年中国电子商务市场元年;团购网站兴起;奇虎推出“扣扣保镖”的安全工具;文化部公布《网络游戏管理暂行办法》;网络舆论的社会影响力加深,“王家岭矿难救援”、“方舟子打假”、“宜黄强拆自焚”、“李刚之子醉驾撞人”...)

    为什么要有Linaro

    2010年前后,移动互联网未来之战进入到白热化,在Kernel层面大家不约而同瞄准了Linux,芯片层面是Intel霸主与利用ARM指令集的各大巨头。ARM当初面临的问题是各巨头虽然都使用ARM授权,但在基础、底层的技术与工具服务都是各自独立开拓,许多工作事实上大家都是重复做,也造成了ARM+Linux的严重碎片化。

    Linaro是什么

    Linaro是由ARM公司发起(2010年),ARM授权的SoC公司(Freescale、IBM、三星、ST、TI 6家公司)共同投资的一个非盈利组织,在ARM RISC架构处理器的基础上,引入和基于Linux内核,构建位于底层的Linaro平台(或称ARM平台),支持相应的Linux操作系统(按照Linaro的设想,如:Android、MeeGo、LiMo、Ubuntu、WebOS等),使其搭载开放的移动互联终端设备(如:智能手机、平板电脑、互联电视、车载信息娱乐系统等),能顺利运行和长足发展。

    Linaro的由来

    2010年,ARM与英特尔之间的口水战虽然少了,但ARM的一个新动作让英特尔更加紧张。因为很少对外结盟的ARM,正与几家行业巨头联姻,试图对抗英特尔与诺基亚宣布不久的Meego联盟,争夺移动互联网市场。ARM在当年台北国际电脑展上宣布,已经与IBM、三星、德仪、意法、飞思卡尔、爱立信六大巨头成立一个非营利性公司Linaro,以致力于在单一芯片平台上,提供基于Linux开源系统技术服务。11月,Linaro首个芯片与软件工具版本正式推出。

    ARM在长达2000字的官方报告中,它没有回避与英特尔、诺基亚Meego针锋相对的内容。报告显示,跟Meego一样,Linaro同样基于完全开放的Linux系统,并致力于操作系统、编程工具和其他软件关键部分的开发。而运行的平台,自然是与英特尔对决的ARM架构处理器。时任ARM中国区总经理的吴雄昂说“Meego做的是Linux操作系统,Linaro不同,它是在操作系统下面,提供更基础、底层的技术与工具服务。过去多年,IBM、三星等合作伙伴都曾涉入Linux开源业务,但是由于都是各自独立开拓,许多工作事实上大家都是重复做。而Linaro则提供了一个平台,共享研发成果,合作伙伴再也用不着重复开发。反映在终端上,自然能加快产品的上市速度。”

    于是,7家行业巨头已经组建起一个80人的研发团队,它们每年将为新公司注资几千万美元。由此Linaro迈出了移动互联网生态系统建立的关键一步,一个强有力的、互利的关系正在形成。缺乏资金实力的Linux基金会更愿从资金角度看问题。Linux基金会执行董事吉姆说,很高兴看到ARM、Linaro增加Linux领域的投资。

    Linaro的基本运作方式

    Linaro的收入主要来自会员公司的会费,算是业界最为财大气粗的开源组织之一了。Linaro由一系列的开发组和项目组成,投资上由Board委员会控制,技术上由技术决策委员会控制(TSC),TSC会定期讨论需要成立什么项目,实现什么功能。然后分配到各个项目中。项目由Linaro的开发人员和成员公司的开发人员(称为Assignee)共同组成,根据项目要求,完成相应的开发,然后上传到Linaro自己维护的分支或者开源分支中(后者首选)。Linaro的开发成果,基本上开源。这就是为什么你看到比较实用的ARM解决方案都是Linaro提供的,因为它代表了ARM联盟的开源软件团队。一般来说,现在大部分软件都可以直接从主线下,他们直接就会支持ARM。但如果你要特定的新平台和新特性的支持,就可以从Linaro下。

    Linaro的96Boards,主要工作是为ARM生态提供统一的开发板,让所有开发者“有ARM开发板可用”,但讲实话,96Boards的开源硬件并未获得多大的影响力,至少在中国情况是如此的。

    Linaro Connect是Linaro每年两次的开发者聚会,一次在欧洲或者美洲,一次在亚洲。每次会有数百人参加,但参会费用不低(2500刀一个人),有兴趣的也可以直接看Youtube上的会议视频,那个不要钱,会有很多ARM领域的最新进展和讨论。

    RISC-V将面临的问题

    如果您对RISC-V已经有了解,和阅读了上面的文字,基本可以自行得出类似结论:没有什么东西是完美的,一辆车既有极致百公里加速性能,又具有很好的通过性是不现实的。RISC-V也是如此,它的开源、模块化和可定制化等等各种特点,既是优点,也将带来比ARM当初面临的底层技术不统一更严重的问题。

    目前,RISC-V整个生态还聚焦在RISC-V的ip设计层面,在高性能市场如何提高处理器性能和ARM形成替代和竞争。暂时在LINUX+RISC-V的方向还鲜有商业案例。所以,一些问题还暂时没有显现出来。

    在作者和中国RISC-V产业联盟秘书长滕岭聊及关于“RISC-V开源基础软件技术和生态”的建议时,我提到此事易早不易迟,原因大致是:

    我关注到各家risc-v ip设计公司,在努力设计ip同时,各自已也投入许多精力在基础软件技术,工具链等上面。这对于各自率先发布ip有帮助,但从大局层面而言重复劳动和碎片化的问题是显而易见的。

    这个问题在32位嵌入式mcu不明显,因为嵌入式mcu的各种应用相对单调。但在risc-v+linux这个生态,碎片化问题将会变得很严重,这将不光是重复劳动浪费的问题,在最终的应用开发生态将带来严重的效率问题。这就如在一场越野拉力赛,你开的是一辆整体设计的车,而我开的车是手艺拼装车(虽然发动机不错),这终究是要输掉这场比赛,甚至于跑不到终点。

    还好的是,我们现在还来得及解决这些问题。一些问题已经在risc-v ip公司内部显现出来了,大家是否愿意用开源的心态来统筹此事。越早进行,投入越少;越晚进行,投入越大。

    我介绍了张先轶博士这边启动的RVBoards开源硬件项目,RVBoards是依托于具体化的开源硬件,致力于RISC-V的基础软件技术,工具链等的研究工作,最终目的是服务于开发者,尤其是让应用层开发人员能平滑甚至于无感从ARM切换到RISC-V,也由此使得海量的开源软件可以被RISC-V生态所顺利使用。RVBoards近期计划是,基于RISC-V ip产学研层面推出Perf-V系列,在RISC-V soc层面将推出Perf-A,Perf-B系列开源硬件。

    scan

    结束语:

    文中总是在提Linux,RISC-V+Linux,难道这是未来之路吗?嗯,除了是RISC-V+Linux,还有其他选项吗?:)

    谢谢您的阅读,如果您喜欢我们的文章,也请帮助我们转发,并欢迎留言交流、来稿。RVBoards渴望每一位关注RISC-V技术的朋友们的关注。


Log in to reply