内容来源:2021 年 6 月 5 日,由 SegmentFault 思否主办的 2021 中国开发者生态峰会圆满落幕。会上,中国电子技术标准化研究院软件中心云计算研究室主任,中国开源云联盟常务副秘书长杨丽蕴发表了主题为《新形势下的开源发展》的演讲。
分享嘉宾:杨丽蕴,中国电子技术标准化研究院软件中心云计算研究室主任、中国开源云联盟常务副秘书长
速记整理及发布:SegmentFault 思否编辑部
大家上午好,感谢思否的邀请。今天我的题目是《新形势下的开源发展》。
我今天主要从三个方面给大家分享。第一个介绍一下我们电子标准院是做什么的;第二个是我们在开源社区、开源生态发展方面,做了哪些研究及建议;第三个就是基于研究,我们正在开展的开源社区实践工作。
中国电子技术标准化研究院是工信部直属事业单位,主要从事国家电子信息技术领域全栈式标准化工作,承担 58 个国际标准化以及国内电子信息技术领域相关标准的秘书处归口的工作,以标准化为核心,提供产业政策研究、标准研制、测试评估、培训咨询等标准化服务。
截至去年,中国电子技术标准化研究院已研制发布 9954 项电子信息技术标准,国标 3000 多项,行标 2000 多项,同时代表中国国家成员体去推动信息技术相关国际的标准,目前已经完成 100 多项的国际标准。
接下来说下我们团队主要做什么。我们团队主要负责三个组织:一是全国信标委云计算标准工作组,是云计算国标的归口和组织研制的组织,目前工作组已研制发布 27 项国家标准;二是中国开源云联盟,云计算技术发展跟开源密不可分,中国开源云联盟前期主要是推动国际开源社区的重要技术在中国广泛商用;三是发起建设了木兰开源社区,推动中文自主开源社区的建设。
我院早在 2006 年就在推动开源的一些工作,和 Linux 基金会前身共同在中国成立了 LSB 联合测试实验室,是全球三家中的一家,负责亚太地区的测试。后来在云计算方面,我们以中国开源云联盟来推动,还有后来的木兰开源社区,来推动工作。
开源规则要素及发展需求分析
我们院从 2018 年开始,结合国家科技部重点研发计划,以云计算和大数据为切入点,系统开展开源社区的建设以及推动国家相关开源生态建设。在这个过程中,我们对开源做了一些研究,同时也做了一些梳理,目前提出了开源的四个要素。
首先第一个要素是开源规则。开源规则是什么?它包括常见的许可证、知识产权、运营、治理等相关流程和要求,是开源社区运营的基石。所有的事物没有规矩不成方圆,都会有规则和规律性。
第二个要素是开源项目。开源项目的定位是开源群智化创新的内核,也就是说所有的开源围绕重要的技术栈或技术的核心来开展,包括非常成功的 Linux、安卓,还有国内本土崛起的鸿蒙、欧拉、飞桨等好的开源项目。
第三个要素是开源平台。比如国内的 Gitee、Trustie,还有开发者经常使用的 GitHub 等相关平台。这些平台在开源里所发挥的作用是技术开发和交流的载体,包括技术社区交流和代码托管的平台。
第四个要素是参与主体。参与主体是发展开源的源动力,稍宏观总结为几类,包括个人开发者(这是非常庞大的主体)、开源技术公司/开源组织(组织和推动以及运营相关的开源社区工作),还有高校、科研机构,负责开展开源人才培养、开源方法理论的研究,还有一块就是开源用户,他们是开源产品化之后,为开源买单的非常庞大的群体。
这是我们对于开源发展要素的思考。为什么要做这个?因为要研究或者推进某一项工作,我们首先得了解它到底包含哪些,我们应该从哪些方向去发力,或者我们应该做好什么,哪些事情由哪些角色来做,所以这是我们对于开源要素的研究或者是思考。
其实下面还有一块就是商业化。我觉得它非常重要,是开源变现很重要的结点。但是这一块我们现在还没有展开,后面再展开研究。
接下来从我国开源政策发展历程来看我国的开源发展。这里我们做了简短的梳理,不一定完整。
首先是回顾到 1999 年,当时我们还叫信息产业部,主要是在推动 Linux 与中国软件产业研讨会,因为咱们的操作系统很多用到了 Linux。在采购的过程中,要看一下开源软件的相关风险或情况,当时在采购过程中支持开源软件。
接下来就是 2004 年,在信产部(工信部的前身)的推动和指导下,成立了中国开源软件推进联盟,主要推动中日韩三国东北亚开源软件的发展。这是我们工信部主导成立的联盟组织,现在依然非常活跃,仍在致力于推动开源文化和开源生态的建设。
到 2015 年的时候,国家“十三五”首次提到了开源,但是当时提的是推动大家加入国际核心开源组织,从参与者到重要的贡献者。也就是说“十三五”的时候,我们提出来的是要积极融入国际开源社区去多做一些相关的贡献。
2018 年到 2019 年,相关各个主管部委,包括我们工信部以及国家科技部,都在从自己主管的领域去推动开源。2018 年,国家科技部明确以重点研发计划来拉动产学研用各方,推动开源社区的建设,支持开源社区生态系统的建设。2019 年,在工信部的指导下,国内首个开源基金会——开放原子基金会成立。
到了 2020 年,各个地方政府也在开源这块不断做一些开花和落地的工作。我们工信部也做了很多工作,包括不断推出一些专项项目来支持开源平台、开源社区和开源技术的发展。
到今年 2021 年,“十四五”从政策层面对于开源提供支持,包含三个方面的内容:第一个是开源社区,数字开源社区的创新联合体的发展;第二个是知识产权,即刚才我们说到的规则层面,要完善知识产权法律体系;第三个是鼓励企业开放源代码,也就是推动更多更好的开源项目,包括硬件的设计和应用服务,把开源项目广泛的商用。这是我们自己的解读。
在“十四五”的大背景下,在开源方面我们应该怎么去做,应该从哪些方向去发力,我们围绕刚才说到的四个方面要素,也做了一些分析。
首先,在开源的规则方面,我们认为国内的开源规则尚不成熟。首先因为开源的文化源自国外,文化基因有所不同,开源的规则体系已经建立,我们以套现有的规则体系应用为主。为什么我们会做木兰许可证?也是为了方便更多的开发者能够用到中文语言的许可证,从而更好地保护自己的权益或者从事代码开发。同时,在开源案件判决方面,国内的经验相对欠缺。前段时间我们在和相关法律界的专家们聊,可能中国的案件相对不多,积累的经验不多。所以在开源规则方面,我们认为开源的规则体系还不是特别的成熟,还有非常大的空间可以发力。
在开源平台方面,我们现在已经有了 Gitee、Trustie 等相关的托管平台,现在已经有一定的数量,同时也在不断去壮大。只要增强用户黏性,我们认为在开源平台方面还是有一些后续发展潜力的。
在开源项目方面,目前来看我们自主发起的基础类开源软件项目,特别是可用于实现较大系统工程的开源项目不是特别多,当然不是说国内的开源项目不多,而是说基础类项目的数量可能不多。同时我们的应用生态还需要进一步培养,因为国内的开发者和用户在转用国内的开源技术和项目的时候,用户黏性或者习惯可能还需要培养。
最后一个要素是参与主体方面,我们认为具备很好的后发优势。我们现在有了自己的基金会,有很多的开源社区,同时国内的企业以及各个地方对于开源非常重视,愿意贡献到开源里头来,愿意发展开源,我们认为这是具备非常好的后发优势。
所以我们把开源从这几个方面打开来看,哪些地方需要更多地发力或者关注,哪些地方目前具备比较好的势头。总结来说,我们认为现在我国的开源正在向系统化和规模化的方向发展,有两个要素需要重点发力和关注:开源规则以及培育更好的重量级的开源项目。我相信,开源项目也是国家希望推动开源去解决的一个非常重要的内容。推动科技创新、推动核心技术攻关或者生态构建,这是我们认为目前在发展现阶段开源的工作过程中,需要重点关注的事情。
开源社区实践
接下来结合前面讲到的内容,和大家分享下我们院在开源社区、开源生态建设方面做的一些工作。
木兰开源社区是一个综合性的开源社区。因为源于国家科技部的科技项目支持,因此它有一个非常重要的使命,要推动国家科技成果的开源、项目孵化和治理,同时我们也要推动开源规则的构建。因为四院的基因,在这方面我们可以做更多的工作。同时我们也可以向业界提供一些基于四院第三方公益性优势的开源基础服务。我们和各个基金会以及平台均有良好合作,比如木兰社区的一些项目可以向各个基金会输送,和国内的开源托管平台也是,大家的代码仓放在哪个地方都可以,是一个多平台协同合作的关系。
治理架构这一块,我们也是在今年做了一些治理架构方面的工作,成立了 TOC 技术委员会,还有市场运营委员会,以及知识产权相关的委员会。目前刚成立了技术委员会,市场运营和知识产权这部分还在筹建过程中。依托电子标准院现在在做的一些事情,开展了我们标准的一些相关工作,这是治理架构的情况。
这个是 TOC 的成员。首批成员是九位,主要是来自高校和产业界,对于开源社区的运营、治理,包括对于开源比较懂的专家,我们把他们邀请进来作为首批 TOC 成员。同时对木兰来讲,因为它是长在四院这个国际化平台上的,所以我们立足中国,和各个开源组织建立相关的合作和联系,也和各个相关的开源基金会(包括 Linux 基金会、OpenStack 基金会、SODA 基金会,还有 TARS 基金会)合作推动在标准化和开源项目孵化、测试认证等方面的工作。
这里介绍我们四院比较擅长的事情,就是开源与标准的关系。我今天把顺序调了一下,把理论的事情往后放了一点。我们做了很多年的标准,从最开始的时候,大家都在说标准和开源是两条平行线,没有交集,因为开源社区的代码迭代得非常快,可能几个月就是一个版本,它怎么去标准化,我们在前期的时候也听到了。但是我们想说的是标准化和开源是有共通性的,把开源和标准从更宏观的工作方法论层面来看,两者很相似,这里不再展开。国际基金会如 Linux 基金会,现在也在推动开源标准化工作。去年 Linux 基金会做了一件非常好的事情,收购了 JDF 基金会,拿到了国际 ISO/IEC JTC1 快速通道,可以快速把他们的相关开源成果转化为国际标准,这是目前国际开源组织在开源标准化方面在做的一些事情。因为标准和开源这个事其实挺大的,我今天就不展开讲了。
大概跟大家说一下,我们目前推动开源标准化工作的一些思路,或者我们应该怎么去做。
刚才也说到,开源项目开发这一层确实不好标准化,不好迭代。我们现在做开源标准的思路,掐住头,掐住尾,凝练方法论的共识,也就是说在前期除了代码开发这一层面还有很多,包括规则、治理架构、运营架构。我们也看到前几天开放原子基金会发布了自己的开源项目孵化标准,这是非常好的一件事情。前头是我们在项目开发之前的规则和治理架构的工作。在开发之后,怎么去评价,怎么去管理,怎么去应用,这一块也是形成了开源标准体系草案和框架,系统推动开源标准化的工作。目前在研标准包括开源许可证框架,这也是我们木兰开源许可证的出处,由北京大学牵头。开源治理框架与能力模型是华东师范大学牵头,它主要是对于开源社区治理总体的框架要素和原则。还有对开源项目怎么去评价,开源社区的贡献者在开源社区参与的程度以及贡献的程度等等。以及最重要的一个——开源概览与术语,我们欢迎大家一块参与。大家都在说开源,但对于内涵的理解未必一致,我们现在牵头推动开源术语,统一业界的认识,做的也是标准化的工作。这是目前我们在标准化方面做的一些相关工作,主要还是在开源的规则体系里,为开源生态的建设,为开发者提供一些相关的规则方面的服务。
这是我们目前形成的木兰开源相关的技术栈。
在这个基础之上,我们现在也在孵化一些项目。刚才也说到,国家科技部相关的科技成果已有 122 项,相关的成果托管在了木兰开源社区,我们在里头主要选择了 5 项进行重点孵化,并结合项目团队对于项目的定位和需求来开展孵化。包括北大的物联网操作系统项目 XiUOS,以及灵雀云、Kube-OVN、中科院的项目,PiFlow 是中科院的大数据相关项目。这是五个相关项目的孵化情况,是木兰社区在项目孵化层面做的一些事情。
我今天把许可证的事情放到了最后。可能大家知道木兰社区比较多主要是在许可证这方面,我把它放到了最后。我们在许可证这个方面是要做一个许可证族,也就是满足不同的需求。首先第一个,我们的宽松版许可证已经发布了,去年通过了 OSI 认证,它也是我国首个中英文双语国际许可证。今年 5 月份,我们又发布了公共版(public licence),它主要是传染性会更强一些。在这两个版本的基础之上,我们还规划了 FRAND 版、软硬件结合版,比如针对某个具体技术领域、具体应用需求的相关版本。当然在这个过程中,我们对于许可证兼容方面做了很多研究性的工作。
这里还要跟大家再说一下异同和应用。现在木兰宽松许可证和木兰公共许可证是两个完全不同的、独立的许可证,相当于它是一个体系下的两个完全不一样的东西。这里按照许可证的宽松和传染程度列了一个轴,大家可以看一下。木兰宽松许可证 MulanPSL-2.0 比 Apache 2.0 更宽松,是一个偏宽松型的许可证。大家要构建生态,或者是吸引更多的开发者,在构建生态方面如果想用,我们推荐大家用木兰 PSL 宽松许可证。
木兰公共许可证传染性比较强,同时对于现在比较多的 SaaS 云服务方面有更多的支持。这种形态有了更多的规定或者说要求,比 AGPL 可能还会更严格一点,传染性会更强一点。在这里也打个广告,欢迎国内的开发者和开源项目能够更多地选择我们木兰开源许可证,现在有宽松版和公共版,可以供大家更多地去选择和应用。在许可证兼容方面,如果有一些相关的问题,我们可以更多地探讨,这个话题也没有打开,它也是稍微有一点专业性的话题,我们就不再打开。
现在应用的情况,木兰宽松许可证现在有几个典型的应用,主要包括 OpenEuler、OpenGauss,还有方舟编译器用的都是木兰宽松许可证。木兰公共许可证比较典型的应用就是前两天蚂蚁发布的 OceanBase,它就是基于木兰的公共许可证来开源。此外,国内外的一些平台也都在支持木兰许可证,所以欢迎咱们的开发者更多地使用我们的许可证。
我们现在在开发者这个层面有一个比较有意思的活动,就是中国开源黑客松,前两天刚刚结束。这个活动主要专注于代码开发,很多国内外项目都会汇聚到这个平台里来,一块面对面地做一些代码开发以及优化的工作。我们经常开玩笑说,这是一个大型网友见面会。当然今天思否也给了我一个非常好的机会,很多网友今天在现场能够见一面。这个活动也是,大家坐到一起,对于社区的某些项目技术问题或者需求,面对面地集中攻关,做一些开发的工作,这是开源黑客松的情况。
最后回顾下今天分享的内容,就是落实“十四五”规划,开放协作共同繁荣开源生态。我的分享就到这里,谢谢大家。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。