2018年开源治理行业研究报告.pdf
开源治理 白皮书 ( 2018年 ) 中国信息通信研究院 China Academy of Information and Communications Technology ,CAICT 2018年 3月 II 版权声明 本白皮书版权属于 中国信息通信研究院 ,并受法律保护。转载、摘编或利用其它方式使用本调查报告文字或者观点的,应注明来源。违反上述声明者,将追究其相关法律责任。 编写说明 牵头 单位: 中国信息通信研究院 参与单位: 腾讯控股有限公司、中兴通讯股份有限公司、 ZStack(上海云轴信息科技有限公司)、华为技术有限公司、阿里云计算有限公司、国际商业机器(中国)公司、红帽软件(北京)有限公司、 EasyStack(北京易捷思达科技发展有限公司 )、中国移动通信研究院、烽火通信科技股份有限公司、 甲骨文 (中国 )软件系统有限公司 、 上海思华科技股份有限公司 、 中联润通信息技术有限公司、 Mesosphere, Inc 编写人 : 栗蔚、郭雪、孔松、王柏鈞、张亚军、孙辰星、李响、梅磊、蒋迪、刘艳华、李静 远、田忠、赵文斌、刘宏亮、马轶慧、贾玄、涂文杰、齐鸣、张霖、冯文强、王建宏、曹治 政 III 目录 一、开源概述 . 5 1.1 开源定义和相关概念 . 5 1.2 开源的市场应用 . 10 1.3 开源的价值和意义 . 12 二、全球开源发展现状 . 15 2.1 开源发展历程 . 15 2.2 企业参与开源的模式 . 16 2.3 开源基金会 . 18 三、中国开源发展现状 . 23 3.1 开源发展 历程 . 23 3.2 企业参与开源的形式 . 24 3.3 中国开源 组织 . 25 四、自主 开源 的 关键 环节 . 27 4.1 事前准备和评估 . 27 4.2 开启 开源项目 . 33 4.3 构建和维护开源社区 . 36 4.4 开源社区治理 . 37 4.5 开源项目评价 . 38 五开源商业模式 . 41 六、开源技术的使用 . 44 6.1 使用开源技术的风险 . 45 6.2 如何选择开源技术 . 45 6.3 如何使用开源技术 . 47 七、开源面临的问题和挑战 . 50 7.1 开源风险 . 50 7.2 违约风险 . 51 7.3 知识产权风险 . 52 7.4 开源许可证兼容性风险 . 57 7.5 安全风险 . 57 八、总结 . 59 附录:开源相关企业概述 . 60 一、腾讯控股有限公司 . 60 二、华为技术有限公司 . 63 三、阿里云计算有限公司 . 66 四、中兴通讯股份有限公司 . 68 五、 ZStack(上海云轴信息科技有限公司 ) . 70 六 . EasyStack(北京易捷思达科技发展有限公司 ) . 71 七、红帽软件(北京)有限公司 . 72 八 、烽火通信科技股份有限公司 . 73 IV 前言 近几年开源技术快速发展, 在云计算、移动互联网、大数据等领域逐渐形成技术主流。开源一方面可以突破技术壁垒,推动技术创新,另一方面,不可避免的带来知识产权、信息安全等一系列问题。我国 企业在参与 国际开源项目 ,跟随主流开源技术 的同时,更多的影响和主导开源项目 ,逐步探索引领开源的可能 。 企业如何开源 、 项目开源流程 、 开源商业模式 、如何使用开源 等问题成为产业界关注的焦点。 开源 治理白皮书 首先 介绍了开源的发展历程以及国内外主要的开源基金会及开源项目,针对 如何 开源 、 开源的商业模式、 用户使用开源 应注意的问题进行详细阐述,最后对企业开源面临的问题和挑战进行了概述。 5 一、 开源概述 1.1 开源定义和相关概念 开源 。 即开放 一类技术或一种产品的 源代码 ,源数据,源资产,可以是各行业的技术或产品,其范畴涵盖文化、产业、法律、技术等多个社会维度。如果开放的是软件代码,一般被称作开源软件。 开源的实质是资产或资源(技术)共享,扩大社会价值,提升经济 效率,减少交易壁垒和社会鸿沟。开源与开放标准、开放平台密切相关。 开源软件 。 一种版权持有人为任何人和任何目的提供学习、修改和分发权利,并公布源代码的计算机软件。通常具备以下 10 个特点 1: -免费 重新发行。当软件是来自不同来源的程序集成后的软件发行版本中的其中一个组件时,许可证不能限制任何团体销售和分发该软件,并且不能向这样的销售或分发收取许可费和其它费用。 -源代码 。程序包含源代码,并且必须允许以代码或已编译的形式发布。 -衍生 产品。许可证必须允许修改原产品和衍生产品,并且必须允许在与原始软件相同的 许 可 情况下发布修改过的产品。 -源代码完整 性。许可证可以禁止他人以修改过的形式发布源代码,只在该许可证基于修改程度的目的时,才允许随源代码发布“补1 opensource/docs/definition.html 6 丁文件”。许可证必须明确允许发布根据修改过的源代码构建的软件。许可证要求衍生产品必须附加不同于原始软件的名称或版本号。 -不得歧视任何人和团体。许可证不得歧视任何人和任何团体。 -不得歧视 任何特定用途 。许可证不得禁止任何人在特定领域内使用某一程序。 -许可证发布。附加在程序上的权利必须应用于那些重新发布程序的人,无需通过其它人额外加以 许可 使用。 -许可证 不得专属于特定产品。附属于程序的权利不得仅限于作为特定软件发行版一部分的程序。 -许可证不得对其它软件加以限制。许可证不得对与已许可软件一起分配的其它软件附加任何限制。 -许可证必须技术中立。任何许可证都不可以基于单独的某项技术或界面风格。 自由软件 。 一种 用户可以自由地运行、拷贝 、分发、学习、修改并改进 的 软件。 2自由软件需要具备以下四个特点:无论用户处于何种目的,必须可以按照用 户意愿 ,自由地运行该软件;用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算,作为前提,用户必须可以访问到该软件 的源代码;用户可以自由地分发该软件的拷贝 , 用户可以自由地分发该软件修改后的拷贝,用户可以把改2 gnu/philosophy/free-sw.html 7 进后的软件分享给整个社区 而 令他人收益,作为前提,用户必须可以访问到该软件的源代码。 免费软件 。 一种开发者拥有版权,保留控制发行、修改和销售权利的免费计算机软件,通常不发布源代码,以防用户修改源码。 3 开源软件和自由软件 。 广义上认为,自由软件是开源软件的一个子集,自由软件的定义比开源软件更严格。 图 1 开源软件、自有软件和免费软件的关系 开源软件和免费 开源 。开源软件是要求软件发行时附上源代码,并不一定免费;同样免 费软件 只是 软件免费提供给用户使用,并不一定开源。 开源许可证。 一种允许源代码、蓝图或设计在定义的条款和条件下被使用、修改和 /或共享的计算机软件和其他产品的许可证。 目前经过 OSI 认证的开源许可证共有 74 种, 而最重要的仅有 6-10 种(最最主要的 2 种: GPL、 Apache)。在开源商业化的浪潮下,适度宽松的 Apache 等许可证更受欢迎。 3 linfo/freeware.html 8 这些许可证大致可以分为 三 类, 一类是 传染型开源 许可 证( Copyleft) , 传染型开源 许可 证 明确修改版本须以同一许可 证 发布,如果一个软件包含该协议下部分代码,完全发布时必须作为整体适用该协议, GNU General Public License Version 2 或 Version 3 (下称“ GPL V2”或“ GPL V3” )作为传染型开源 许可 证 给予任何人自由复制、修改和发布 GPL 代码的权利,但是作为回报,所有以 GPL 协议发布的源代码的衍生,也必须按照 GPL 发布。 第二类 是 弱 传染 型 开源许可证 (Weak-Copyleft),如果一个软件包含该协议 下部分代码,完全发布时某些部分必须适用该许可 证 ,其它部分可在其它协议下发布 ,如 LGPL、 MPL 等。 第三类是获准型许可证 ,对已修改代码的许可方式没有任何要求,如 BSD 要求许可证附上许可证的原文以及所有开发者的版权资料,它允许原作品及修改版发行不公开源代码或以其它许可证发行。 广泛使用的开源许可证 包括 Apache-2.0, BSD-3-Clause, BSD-2-Clause, GPL,LGPL,MIT,MPL-2.0, CDDL-1.0, Eclipse 2.0.4 -GPL(GNU General Public License, GNU 通用公共许可证 ):一种广泛使用的自由软件许可证,保证用户可以自由的运行、学习、分享和修改软件。许可证最初由自由软件基金会( FSF) Richard Stallman 为 GNU 项目所撰写。 GPL 是一个非盈利版权许可证,要求衍生作品只能在相同的许可条款下发布。 GPL 的出发点是代码的开源使4 opensource/licenses/category 9 用和引用代码开源使用,不允许修改后和衍生的代码作为闭源的商业软件发布和销售。 -LGPL(GNU Lesser General Public License, GNU 宽通用公共许可证 ):一种由 FSF 颁布 的自由软件许可证,允许开发者或公司在私有软件中使用,不要求使用 LGPL许可 代码的软件以 LGPL方式发布。与 GPL 的强制性开源方式不同, LGPL 允许商业软件通过类库引用的方式使用 LGPL 类库而不需要开源商业软件的代码。 -BSD (Berkeley Software Distribution):允许使用者修改和重新发布代码,也允许使用或在 BSD 代码上开发商业软件并发布和销售。 -MIT License:允许开发者任意处置该软件,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中 必须包含许可提示。 -Apache License:一种由 Apache 软件基金会发布的自由软件许可证, 相对比较友好,被授权者可以发布商业化软件 。 -MPL (Mozilla Public License 1.1): MPL 协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。 -CDDL(Common Development and Distribution License):CDDL开源 许可证 ,是 MPL 的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。 10 -EPL (Eclipse Public License 1.0 ):EPL 允许 Recipients任意使用、复制、分发、传播、展示、修改以及改 后闭源的二次商业发布。 开源许可证的共同点是保留版权,差别是商业兼 容性或共享权限不同。 图 1 不同开源许可证的特点 1.2 开源的市场 应用 开源 软件 市场应用广泛 。 据 Gartner 调查显示, 99%的组织在其 IT系统中使用了开源软件 ,同时开源软件在服务器操作系统、云计算领域、 Web 领域都有 比较广泛的应用 。 开源软件市场规模 稳居 服务器操作系统 首位。 根据 Linux 内核开发报告 2017显示,自从进入 Git 时代( 2005 年 2.6.11 发布之后),共有 15637 名开发者为 Linux 内核的开发做出了贡献,这些开发者来自 1513 家公司。 全球公有云上运行的负载有 90% 是 Linux 操作系统,在嵌入式市场的占有率是 62%,而在超算的市场占有率更是达到了 99%,还有,它运行在世界上超过 82% 的智能手机中,也是所有公有云厂商的主要支撑服务器( 90%) 。