对开源的认知

没有开源软件,现在的互联网根本无法存在,开源的历史可以追溯到ARPANET建立。开源在今天已经不再是一个时髦的词了,对于互联网的开发者来说,它现在就像空气和水一样,就在我们的生活中。

来自https://octoverse.github.com

如今的主流开源参与者,不再只是个人爱好者,更多的是著名IT企业的员工,商业公司也纷纷支持。IT企业投入了大量人力在各个开源社区和项目上,包括开发测试,项目协调,运营推广等。

什么是开源

从软件的版权属性和发布方式上看,软件的分类如下:

开源软件被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制:蓄意的保护它的开放源码状态,著者身份的公告,或者开发的控制。

简单的说,开源就是源代码开放和开源许可协议的选择。开源意味着用户可以免费运行,自由学习,免费二次分发以及自由修改改进。

开源许可协议及选择

开源许可协议大概有上百种,例如:

  • Apache License 2.0 (Apache-2.0)

  • 3-clause BSD license (BSD-3-Clause)

  • GNU General Public License (GPL)

  • GNU Lesser General Public License (LGPL)

  • MIT license (MIT)

  • Mozilla Public License 2.0 (MPL-2.0)

  • Eclipse Public License (EPL-1.0)

  • ...

但是,常见的开源许可大约10种,主要有类似GPL,类似BSDL和类似MPL等。

GPL

GPL给软件以版权保护,使用GPL,可以获得复制、发布和修改这些软件的法律许可。

GPL的特殊性是 copyleft 与自由的病毒式传播。在所有开源许可证中,GPL 的最大特色在于它的“copyleft”规则。 它严格地控制基于自由软件的集合作品或者衍生作品,GPL 第 1 条将其称为“基于程序的作品”,发布规则很简单,只要使用了 GPL 下的自由软件,那么衍生作品以及集合作品的发布都要基于GPL 之下。

类似的开源许可证AGPL、LGPL…等等,是一种相对理想的是实用主义。

BSDL

BSDL主要适用于 Apache 服务器和基于 BSD 的操作系统项目(FreeBSD、 OpenBSD、 NetBSD),不排斥对开源软件的商业利用,有实用主义的观点。

BSDL 的特殊性是被许可人的绝对自由,对被许可人做了最少的限制,只要尊重原作者, 合理恰当地标明了源代码的出处,被许可人将不受限制于将这些源代码用在自己的程序中而按自己的要求进行程序的发布和软件的许可、产生衍生作品后仅以目标码的形式发布,等等。这意味着可以从 BSDL 的开源软件中衍生出私有软件。

类似的开源许可证有Apache 、MIT等等。

MPL

MPL是1998年初Netscape的 Mozilla 项目组为其开放源代码软件项目设计的开源许可证。

MPL的特殊性是在开源软件许可证谱系中接近于 BSDL,但它带有强烈的商业化特征,为公司保留了相当的权利,相当于集开源之力,都为我所用。

类似的开源许可证 Apple 公共代码许可证(1.2)、Sun 公司的SISSL和 Sun 公共许可证 (1.0)、Nokia 开放源代码许可证(1.0a)、 IBM公共许可证(1.0)等等。

如果选择一个开源协议呢?乌克兰程序员Paul Bagwell给出了一张分析图,如下:

国内的阮一峰在博客上给出了简化的版本:

除了Linux操作系统外,一个可能是最成功的复杂开源系统体系可能对理解开源许可协议有帮助。

Android 的开源许可体系

Android有关linux内核部分采用GPLv2协议开源,有关userspace采用ASLv2(Apache协议版本2 )协议开源。

GPL和非GPL的分界线在于一个 Bionic Libc 的库。 头文件由Linux内核的同名头文件自动生成,用来获取完成用户空间系统调用的必要信息。它只包含原头文件中的常数、结构和宏定义,因此,不包含版权信息。让 GPL 止步于内核空间被 Linux 内核的作者 Linus Torvalds以及其他的内核开发人员多次澄清,普通系统调用为非 GPL 的作用范围。

Android 在用户空间与内核空间之间存在着硬件抽象层 HAL,HAL 类库本质上一种用户空间的驱动,其中的主要用途之一就是规避GPL。硬件厂家把需要保护的商业机密以及知识产权相关的逻辑放在 HAL 层,以二进制包的方式发布,不需要公开源代码。

PAX专利联盟是Google 加强它对 Android 控制力 的另一种手段。手机厂商想要采用这些免费的专利,就不得不 预装 Play 商店及一系列Google 应用。

开源与专利

将开源代码修改后,自己申请软件专利是可能的,这取决于具体的开源许可证。MPL禁止将开放源代码以许可证形式许可后再去申请与这些源代码有关的专利的行为。BSD,Apache等对于专利申请没有限制。

就Ricoh,SISSL,NOKOS,AFL,Artistic,APSL等开源许可而言,贡献者将自己享有实质专利权的技术加入开源软件的,视为源代码的专利权人将该专有权利向公众许可。

使用代码扫描工具如Black DUCK或Openlogic等,能够对代码进行合规性检查,通过扫描源代码,发现并确认其中存在的开源代码,及其版本、许可证(License)信 息等,形成“材料清单”,让用户了解其代码。

开源中的法律问题

开源软件,虽然理念上违反传统的知识产权法,但是行动上却寻求包括著作权法、商标法、专利法在内的综合保护,进而形成了一个类似于商业软件知识产权综合保护的体系。开源后,侵权证据极易获得。

关于开源软件的著作权,主要有两个维度的风险:

1)复制、分发或修改他人软件时,要求按照协议规定附上版权说明,若不履行该义务,将可能面临著作权侵权(例如Apache-2.0\BSD-3-Clause\GPL-3.0\MIT等)

2)对修改而言,有的协议明确要求对修改的部分进行明示,标明修改人信息(例如Apache-2.0\GPL-3.0\LGPL等)

开源软件的专利权也存在风险,协议中授权被许可人专利申请的权利,以及专利再许可的授权。若在协议中未明确专利的再授权,将会存在一定的专利侵权风险,如BSD-3-Clause\MIT,未有明确的专利授权,专利侵权风险较大; GPL-3.0\LGPL-3.0,要求专利以免费的、非独占的许可方式分发给使用者,这就将一些授权风险排除,从协议来看风险反而会小一些。

开源软件的商标权风险,未依据协议要求正确使用商标 在部分协议中,针对商标权的使用,予以明确授权 GPL-3.0\LGPL-3.0,未明确规定不能使用商标; Apache-2.0\BSD-3-Clause明确不允许使用其商标,若使用将会存在商标侵权风险。在商业行为中,在开源程序中删除原有商标,更换为自己的商标后发布,构成商标法意义上的反向假冒,侵犯商标权。

那些个开源的大公司

在2016年,微软是Linux基金会的白金会员和董事,微软云Azure支持Redhat,Ubuntu, Suse等Linux版本。SQL Server也推出了Linux版本,开源了.Net, Visual Studio等核心产品,在github上贡献排名一度超过了facebook和google,内部人士宣称除了Window和Office,其他产品都已经开源或者在开源的路上。Azure 是微软最重要的未来,事实上有 1/3 虚拟机是 Linux系统,不支持Linux,微软云没法跟AWS和google竞争。

Google的核心业务场景是抓取网页数据,建索引,最后响应用户需求。Google做了全产业链的布局,而且全部以开源开放的方式,例如

  • 浏览器 – chrome & blink

  • Webapp - PWA

  • 网页加速- AMP

  • 前端框架 - AngularJS

  • ......

还有前面提到的Android。以Google开源的图片格式Webp为例,相对于PNG和JPG,在文件长度上有28%到45%的减少,可以减少大量的存储空间,带宽以及页面的平均加载时间。

在国内,华为的开源影响力很高,是Linux基金会,OpenStack基金会,CNTF(k8s)的白金会员,且到目前为止都是国内唯一,贡献排名均居前列。作为Apache基金会的金牌会员,捐献的 CarbonData成为了Apache的顶级项目。 华为的主张是“源于开源,强于开源,回馈开源”,通过参与开源,积极投入到云计算的相关开源技术领域,引领并主导技术标准的演进,促进华为在云计算基础设施上的技术能够领先。

百度有自己的对外开源规范,echarts早在2013年就在github上开源了。2016年9月,PaddlePaddle在百度世界大会上宣布开源,这是是一个易用、高效、灵活、可扩展的深度学习框架,兼容多种异构硬件,具有优异的训练&预测性能,官方支持多种领先模型,提供全流程的深度学习模块和组件,适合不同层次开发需求。百度在github上有数十个开源项目,2017年4月,百度宣布阿波罗计划,无人车系统开源。

阿里知名项目 weex,fastjson,dubbo,rocketmq,druid,jstorm等等等。阿里通过用户的意见反馈,bug报告,patch提交,促进了开源软件本身的质量提高,技术能力和开放精神获得了业内的认可,阿里技术工程师又了强烈的认同感,同时吸引了更多有能力的工程师加入。通过开源软件和自主开发相结合,实现了更好可控性和更高可扩展性,阿里的技术品牌通过得到了加强。

开源的商业模式

开源的商业模式有很多,有点跟产品强关联,例如微软和Azure;有的利用开源构建生态,从生态里面挣钱,例如Google Android。在维基百科上列出林林总总18种方式,主要包括:

  • 通过服务来收费,例如 RedHat,IBM等

  • 通过双License来收费,例如MongoDB,Neo4J等

  • 通过商业版本提供高级功能,例如Cloudera(Hortonworks已经并入Cloudera抱团取暖)等

  • 通过云来收费,例如AWS,Azure等等

  • 通过生态来收益,例如Google等等

一个好的开源项目需要有价值,这是前提。同时需要降低用户贡献的门槛,还需要提供合理的用户激励。

参考资料:

  • https://en.wikipedia.org/wiki/Business_models_for_open-source_software

  • http://opensource.org/osd

  • https://linuxfoundation.cn/resources/open-source-guides/starting-open-source-project/

  • https://about.gitlab.com/20-years-open-source

  • http://github.com/baidu/paddle

  • https://www.oschina.net/news/74999/how-to-choose-a-license

  • http://www.gnu.org/licenses/license-list.html

(0)

相关推荐

  • 开源软件许可协议简介

    很多软件开发者和设计者都有将自己的软件作品以开源的形式公之于众的想法.他们希望其他人也可以分享自己的作品,使用自己的作品.开源社区之所以能蓬勃发展就是因为人们有这样的愿望.开源软件如此的丰富,任何你能 ...

  • µC/OS、FreeRTOS、RT-Thread、ThreadX开源协议的具体内容

    目前市面上的开源协议有很多种,比如:GPL.BSD.MIT.Mozilla.Apache 和 LGPL等. 选择RTOS,通常会考虑开源.市场占有率.配套资料和例程,以及配套组件等,市面上使用率较多的 ...

  • 逃不开的认知周期 | 开源策略

    文:开源策略团队 联系人:牟一凌/梅锴 欢迎投资者与我们作深入沟通, 团队介绍及联系方式:<这基本是一个自我介绍> [报告导读]未来的共识并非是过去的简单外推,从"五朵金花&qu ...

  • 7条颠覆你认知的开源赚钱建议

    图片出处/<侧耳倾听> 七月份快结束了,看了一下这个月的到账收入,一共有3.3万,换做两年前,我是不敢想象自己每个月能有这么多钱的. 我没有优质的出生背景,也没有高大上的学历光环,只是误打 ...

  • 认知世事(六百七十八)

    我们把人生的目标比喻是盖房子,砖.水泥等材料就如同财富.权势.地位等. 大部分人在这过程中忽略目标是盖房子,等穷其一生终于收集到大量的材料后, 却发现自己也已年老力衰,没有力气再去盖这幢房子了,所以耗 ...

  • 我们在这个宇宙有多渺小,看完这个视频,重新认知这个星球

    我们在这个宇宙有多渺小,看完这个视频,重新认知这个星球

  • ▶科学家最新发现,完全颠覆你对健康的认知!

    这篇文章是关于健康的一些发现, 有部分甚至是权威营养学家几十年的研究成果, 完全颠覆你对健康的认知. 1 死亡,是食物造成的 柯林·坎贝尔 被誉为营养学爱因斯坦的世界营养学权威柯林·坎贝尔博士发自良心 ...

  • 人和人的根本差距在于认知体系

    人的所有言行都是建立在认知体系上的.所以,认知体系不同的人没有办法沟通,也不需要沟通,这就是所谓的"宁与同好争好恶,不与傻瓜论短长".马斯克也说过同样的话,意思是岁数大了他也明白了 ...

  • 颠覆认知的宇宙真相

    自然玄妙,深不可测!大千世界,眼见不一定为实.人们把司空见惯的现象归纳为常识,把眼睛看到的情景定义为现实.然而,常识未必是真知,现实不一定是真相.人人皆知水能灭火,而钠在水中燃烧:现实世界里低速运动时 ...

  • 八个科学方法,改善你的记忆和认知能力,让你变得越来越聪明

    我们都希望自己能够变得越来越聪明. 而聪明与否的关键,除了取决于我们天生的智商之外,还取决于我们后天,有没有"打磨"自己的大脑. 通常来说,锻炼自己的大脑有两种方式: 1,抽象形式 ...

  • 认知世事(六百七十九)

    有两种东西让人迷失:一是谎言,二是欲望: 有两种东西让人沉醉:一是酒精,二是名声: 有两种东西把人束缚:一是物质,二是爱情: 有两种东西让人觉醒:一是真理,二是苦痛: 有两种东西把人埋葬:一是坟墓,二 ...