不久前,「一源初始,开放共创」开放原子开源基金会 2020 年度峰会于北京圆满落幕。峰会由开放原子开源基金会主办,阿里巴巴、百度、华为、趣链科技、SegmentFault 思否、招商银行等开源项目代表单位及开源社区协办,亦得到了全体理事单位的大力支持。
本次峰会围绕开源运营治理、开源教育与公益等方向开展了主题论坛分享。会议中,来自中国科学院软件研究所的副总工程师武延军以《开源操作系统和开源软件供应链的教学实践》为主题进行了分享。在大会上,武延军提到了开源软件供应链面临的三个主要问题:产业价值不高、社区贡献不足、生态受制于人。
为了进一步了解开源软件供应链的定位与目标,以及有哪些举措可以解决我国开源软件领域的困境等问题,SegmentFault 思否对武延军老师进行了专访。
Q1:开源领域有很多角色分工,比如宣讲者、推动者等。您认为您在开源领域中的角色是什么?
我觉得我更像是教育工作者。科研院所本身具有培养学生的职能,目前全所有 500 多名学生,每年会新吸纳 100 多人,我们有责任把这些人往开源软件的大模式上去引领。
之前大部分人对开源还没有太多概念,包括像开源社区的运作模式、开源软件的开发模式、开源规则背后的理念,可能都没有太多理解。我们作为教育者把这些都教给学生后,对他们后续从事科研工作,是有很大帮助的。
对此我们也进行过一些实践,比如我们在实验室内部长期维护一份新生新员工指导手册,我们会推荐学生去看一些开源入门项目,比如 GitHub上 有个「first contribution」项目,可以教大家如何第一次为开源做贡献。
Q2:是否会涉及帮助学生分析、挑选开源项目的内容?有没有一些基本标准?
中科院的研究生基本第一年都在集中上课,第二年开始参与科研,第三年要开始找工作,算下来只有一年多的时间在专心做科研。从学生培养角度来说,我们有义务尽早告诉他们哪些开源项目是高质量的、有价值的、参与其中对他们的成长是有益的。
还有一个重要维度,是哪些开源项目对产业有帮助,甚至更大意义上说是哪些项目对解决国家面临的“卡脖子”问题是有帮助的。两者如果能结合在一起是最好的一种方式。
这也是软件所发起开源软件供应链点亮计划的初衷。我们希望从供应链的角度去分析哪些项目有价值,或者处于有风险的状态。
一个开源项目可能被很多工业级产品使用,但是有可能我们国家现在还没有人去参与,也没有人能掌握。如果这个开源项目出现了缺陷漏洞,或者后续版本不开源了,在这种情况下我们应该有人去把它承担起来,而不是一直“拿来主义”。
所以我们要把学生尽可能的引导到有价值且对产业有贡献的开源软件上,让他们既能完成自己的学业,学到有价值的东西,同时也能解决社会和国家的问题。
Q3:您认为学生群体在开源生态中是一个什么角色?
相对来讲,学生没有功利性和目的性,自我成长的意愿比较强,所以他们在社区里的活跃度会比较高。虽然不一定是贡献最多的,但在一定程度上确实可以推动社区的活跃度。
第二点来说,学生类似于接班人的角色。新生力量对开源的参与融入,意味着很有可能他将来走向工作岗位后会优先使用开源软件,使用开源社区中的开发模式,将开源文化带到他的工作当中,最后潜移默化的变成开源推广者。
培养学生参与开源的过程像是制作火种。学生开源群体就像火种一样,先是慢慢的被点燃,接着到更广阔的空间中去发光放热。
Q4:您认为开源的核心价值是什么?
首先我认为开源是人类社会共享互助精神在数字时代的体现,并在互联网的催化下将这种精神发扬光大。
第二点我认为开源是一种非常棒的人类文明薪火相传的模式。一个成果如果垄断在一个人或者一个团队手中,成果的传承会有非常多的不确定性,但开源可以将成果一直延续下去,实现累进叠加式的发展。
Q5:您认为国内的开源行业,现在发展到了哪个阶段?
近几年,特别是从去年到今年这一时期,国内的开源发展非常迅速。以前可能是分散的“点”,现在则形成了“面”。
具体而言,以前我们零零星星能听到一些国内发起的开源项目,个别开源老前辈也有一定的国际影响力,但并没有形成一种大的社区和生态。
从今年开始,像 openEuler 这样的开源社区在华为的大力推动下,变成了一个有目标、有组织、成体系的社区。它以操作系统为主线,把上下游生态全部连接起来,很短的时间就吸引到 2000 人以上的活跃开发者,这是以前从来没有过的。
还有像产学研协作,在以往的开源社区是很难出现的。但今年开源行业一个很重要的特征,便是产学研合作在开源社区里出现了,这将大大缩短学术界与产业的距离。
如果说以前我们叫游击队式的「开源 1.0」,今年开始可能真的到了正规军式的「开源 2.0」阶段,这是一个非常明显的质的变化。
Q6:您觉得推动开源发展的力量是什么?
我觉得跟国际形势变化有很大的关系。以前大家觉得“拿来主义”没问题,能满足商业诉求就可以。但贸易摩擦后,大家发现不能只考虑短期的商业利益,还要考虑业务的可持续性。像华为就是一个最明显的转变样板。
第二点我觉得可能是疫情的原因。大家在线上的时间变长,数字世界的一些文化自然而然会得到比较广泛的传播。
很多应用领域的 IT 工程师以前可能知道开源这个词,也接触过Linux等开源产品,但对开源的力量并没有直观感受。今年「武汉 2020」开源项目的出现,让大家一下就明白了——原来开源是通过充分的、自发的协作,让大家一起以共同的信念,去完成一个普通个人无法完成的宏大目标。
线上会议的普及对开源来说也是很好的推进。以前开源社区里的成员想聚到一起开会很难,但现在大家可以通过线上视频会议的形式来讨论、学习,让更多的人通过线上会议的形式参与到开源当中。
Q7:您觉得现在这种发展趋势,对开源来说是一件好事吗?
肯定是好事,这种状态如果能够一直延续下去,可能未来几年内我们就会进入到开源3.0阶段。
开源 3.0 是什么状态?我现在个人预期是,以后在中文世界里中国人主导的主流开源项目会越来越多,然后会以这些开源项目为起点,在世界开源产业里占有一席之地。国内也可能会出现类似于 Red Hat、Snowflake 这类重量级的开源公司,并能在商业上取得成功。
Q8:供应链是 2020 年的热词之一。开源软件供应链相比其它领域有什么独特性吗?
我觉得独特性体现在两个方面:“软件”和“开源”。
供应链这个概念在各行各业都有,特别是传统行业供应链已经非常成熟。但对于软件行业,有它本身的特点:迭代周期短、供应全球化、开发线上化、复制成本低、仓储集中化、用户多样化等等。
其中仓储集中化是一个比较有意思的特点。在没有 GitHub 的时候,每个站点可能都会存储自己的开源项目,但现在开源项目有 90% 以上应该都集中存储在 GitHub 中。这跟传统供应链完全不一样,传统供应链在每个国家、每个港口城市都有自己的仓储系统,但开源软件领域将这些都存放在同一个平台上。这是一个特点,但也可能是一种风险。
Q9:您进入操作系统领域已经有 20 年了,您认为开源对操作系统的发展有哪些促进或者影响?
开源对操作系统的促进作用是非常大的。回顾 Linux 的发展之路,可以发现它也是在开源运动之后才得到迅速的发展。
首先从开源操作系统的组成来看,一个主流开源操作系统包含的开源软件包大概有3万多个,是汇集很多人一起才能完成的一件事情。做一个商用操作系统是一件很严肃的事情,这3万多个包都需要保证得到很好的维护,才能进行大规模商用。例如谷歌的安卓系统,软件包和第三方库都是经过长期筛选之后,才变成一个成熟的商用操作系统。
第二点是从操作系统的推广和使用上来讲,开源操作系统在现阶段用户的接受度会更好一些。相对来说,开源会比较透明和开放,大家不需要过于担心系统的可控性以及数据的安全问题。所以我觉得开源操作系统会是社会未来最认可的一种模式。
第三点是操作系统的最终属性。从产业角度来看,操作系统已经过了直接盈利的阶段,它可能逐渐会演化为一种社会公共基础品,会成为一种基础设施。
想基于基础设施本身开展商业行为是很难的,肯定会依托于类似服务订阅的方式。在这种方式下,大家为什么选择你?可能就是要靠广泛的社区认可,靠对开源的贡献程度。
你在开源操作系统上做的贡献越多,大家可能就越倾向于找你来提供服务。未来操作系统一旦变成公共品,那可能围绕操作系统的商业必须要完全的去拥抱开源,通过对开源的贡献证明自己的实力。
Q10:OpenHarmony 是为这种操作系统提供一个生态平台吗?您觉得它对于整个生态有哪些推进作用?或者说它的价值点是什么?
我觉得 OpenHarmony 的核心定位也应该是根操作系统社区,跟 openEuler 一样,这样它才能价值高、意义大。
根操作系统社区作为商业版操作系统社区的基础,可以让商业版节省大量的人力物力,将更多的精力放在满足客户需求上,尽可能的去满足国内现阶段的一些共性需求,然后逐渐走向国际。
更高一层的意义在于,在当今世界格局下,中国对于操作系统的需求是非常强烈且场景是丰富的、市场是巨大的。我们有理由也应该有能力抓住这个机遇,发展一个属于我们的根社区,吸纳更多的软件包、吸引更多的开源人士、覆盖更多产业需求。
所以说 OpenHarmony 的意义是巨大的,期待它以后也能起到类似于高速公路、水电站和特高压电网这样基础设施的作用。
开源正在改变世界,开源软件、开源硬件、开源内容在各行各业有着越来越重要的地位,开源的模式在改变着各个行业的生产方式并大大提高了生产效率,但开源的发展仍需各界人士的积极参与。
开放原子开源基金会的使命是“一切为了开发者,一切为了全世界”。随着发展,开放原子开源基金会已经展现出了能力与价值。以「开源」为纽带的开放原子开源基金会号召各界人士一起来推动中国的开源事业,基金会愿意持续构建一个开源的生态,帮助大家共建、共治、共享。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。