开源,免费的午餐?

开源软件:真的是天上掉下的大馅饼吗?

作者:胡又文团队 

来源:计算机司令部

5月15日,美国将华为公司及其附属公司列入出口管制“实体名单”。随后美国谷歌公司宣布将停止提供安卓(Andriod)系统的技术支持与服务,而安卓系统一直是世界知名的开源项目,美国开源代码托管平台GitHub与美国非盈利公司Apache基金会均明确声明受美国出口管制约束。美国政府的开源出口管制究竟有何影响?我们分别从开源项目的管理者、开源协议以及开源代码托管平台三个层面进行分析,为投资者答疑解惑。

1、开源软件:真的是天上掉下的大馅饼吗?

开源软件给予使用者学习、修改以及以任何目的向任何人分发该软件的权力,是互联网精神的完美体现。开源软件起源于70年代的自由软件运动,以理查德·斯托曼为代表的计算机黑客追求软件开发层面的自由,与以微软为首的商业闭源模式形成对抗。近些年,开源运动进展的如火如荼,Linux不断在服务器操作系统领域攻城略地,Apache web服务器应用已逐渐成为中小公司搭建网站的不二选择。而自人工智能诞生之初,深度学习框架tensorflow、caffe等就以开源的模式出现在人们面前。

图1:开源软件已经渗透在我们日常生活的方方面面

数据来源:安信证券研究中心整理

开源软件已经逐渐渗透到了我们生活中的方方面面,目前以手机为首的智能终端主要采用Android开源操作系统,浏览器Firefox、Chrome也均为开源软件。以办公为主的PC机及服务器所使用的的操作系统是开源的Linux家族产品,例如Red Hat、Fedora、Ubuntu。大量我们日常使用的互联网服务底层均由开源程序支撑。例如,腾讯云采用开源云服务管理框架Open Stack,一般网站的Web服务及数据库服务分别由Apache Server和MySQL提供。同时,大多数网站为实现便捷化运维,均采用开源虚拟化容器技术Docker。对于IT开发者来说,开发工具VS Code、Eclipse均为开源,一些开发框架例如Qt也为开源厂商提供。现今流行的大数据基础平台Hadoop、Spark及人工智能深度学习平台Tensorflow、PyTorch等均来自国外开源软件厂商。即使是VR/AR等还处于原始创新阶段的技术也依托于OpenVR等底层开源库。另外,大量最新科技成果的代码实现都是以开源方式释放的,这些是我国IT技术进步的指明灯。因而,可以说开源软件早已充斥在我们周围。

商业公司开源的目的并不单纯,掌控生态是核心。天下没有免费的午餐。众多商业公司也涌入到了开源社区,这显然不是为了发展极客精神、壮大慈善事业。目前,以免费开源项目吸引技术极客开发者与中低端用户,通过扩大生态来销售附加产品及服务已成为现今IT科技公司的新战术。Github等开源平台上不乏Google、Facebook等科技大佬的身影,但这一火热现象的背后也埋下了隐患。本次,华为遭到Android手机操作系统管制,说到底就是Google的Android生态产品Google Play等遭到了美国政府的禁令打压,而非Android系统开源代码本身遭到了封禁。故而,开源项目的衍生生态环境才是本轮美国政府的开源出口管制中最需要关注的。

2、开源项目的管理者

图2:开源代码的所有者包含三类:开源基金会、商业公司和个人开发者

数据来源:中国开放指令生态(RISC-V)联盟,安信证券研究中心整理

开源基金会

开源基金会是一类非营利性技术贸易协会,往往由某一著名开源项目的维护社区演化而来,例如Linux基金会、Apache软件基金会。开源基金会管理开源项目,但基金会的管理办法差异较大,而基金会旗下的开源项目也可以选择不同管理办法。目前,开源基金会超过9家,包括Linux基金会、自由软件基金会(FSF)、Apache基金会、Mozilla基金会、Python软件基金会、软件自由保护组织、Eclipse基金会、OpenStack基金会、Open Networking基金会等。

自由软件基金会(FSF)是最早的开源组织之一,由GNU之父理查德·斯托曼建立,主要工作是运行GNU计划,开发更多的自由软件。自由软件基金会是开源软件最坚定的维护者,目前未公布任何与美国出口管制相关的法律声明。

Linux基金会、Apache软件基金会、Mozilla基金会、Python软件基金会、Eclipse基金会等均是由知名的开源项目维护组织演化而来。大多数软件的发起及兴盛均在美国发生,而不像自由软件基金会一样更带有“全球化运动”的色彩,因而这一类基金会大多数在美国注册,也很大程度上受到所在地的司法管制。

一些由公司联盟、开源工具项目发起的基金会组织,例如软件自由保护组织、OpenStack基金会、Open Networking基金会,目前规模较小、影响力不大,因而未见到与美国出口管制相关的法律声明

商业公司

为表现出科技巨头的社会责任心以及回馈开源社区,Google、Facebook等新兴互联网公司都已经大规模推出自己的开源项目。在开源浪潮的冲击下,一些老牌的公司包括微软、Intel也纷纷转变思路,开放了Visual Studio Code、Intel-Caffe等项目。国内的BAT等巨头也纷纷拥抱开源,百度的自动驾驶Apollo平台、阿里的的IoT操作系统AliOS均宣布开源。开源模式既是公司推广自身品牌的良好途径,也是公司发动开源社区,降低自身产品维护成本,发掘优秀开发者的不二选择。最后,大公司的开源从不是“慈善家”的良心发现,而是一种放长线钓大鱼,打造生态以期长远盈利的途径。

目前知名的开源项目,如终端操作系统Android,AI开发与训练平台tensorflow、PyTorch等均来自商业公司的开源项目,而作为美国本土成立、发展、上市的商业公司,将受到美国政府的严格管制。

个人开发者

事实上,个人开发者才是开源社区最积极、最有活力的一股力量。在各大开源代码平台及网站上,中小型项目基本都是由个人开发者群体进行维护的,而事实上这些项目也是开源平台活跃的源泉。目前,IT类各大学术会议前程成果开源已基本达成共识,这为广大从业者提供良好学习机会的同时,也为各大科技公司寻找创新方向、项目改进思路提供启发。例如,Caffe项目最初是由加州大学伯克利分校计算机科学博士贾扬清开发并发布,其良好的构架和强大的功能吸引了Intel、Facebook的助力,并纷纷依托于Caffe推出自己的开源项目Intel-caffe、PyTorch。

整体而言,个人开发者对项目管理比较薄弱,部分开发者甚至并未对自己的代码附加开源协议,任由其他人使用、封装、改动。因而,美国政府的出口管制对现有的项目几乎无法产生任何影响。

表1:开源项目的管理者和风险的分类统计

数据来源:中国开放指令生态RISCV联盟,项目官网

3、开源协议

开源授权允许使用者在其客制化、好奇、除错等相关需求下,对源码、蓝图、或设计等浏览及修改。然而,开源仅代表代码的使用权,而非代码的所有权。开源协议就是用来规范开源代码的使用者应该如何引用、拓展乃至推出商业产品的。目前,主流的开源协议包括GPL、LGPL、BSD、MIT、Mozilla、Apache

GPL

GPL(GNU General Public License)即GNU通用公共许可协议,是目前应用最广泛的开源协议,往往被大型商业公司开源项目采用。许可证最初由GNU项目的自由软件基金会的理查德·斯托曼撰写,并授予计算机程序的收件人自由软件定义的权利。GPL最主要的特点是它所包含的copyleft条款,要求分发者对改作后的派生作品必须要使用相同许可证授予接受者以保证其后续所有派生作品都能被任何人自由使用。简而言之,GPL具有“病毒传染性”,一旦某一个软件项目使用了基于GPL协议开源的代码,则该软件项目以及之后引用该软件项目的新项目都必须遵守GPL开源。

目前,大部分发行版Linux操作系统都是基于GPL协议的,比如Red Hat、Fedora、Ubuntu等。同时,基于Linux内核开发的Android操作系统同样遵从GPL协议。基于FreeBSD等Linux操作系统开发的国产操作系统中标麒麟、民间的StartOS、Deepin Linux理论上也应遵从GPL协议。同时,数据库工具MySQL、基于分布式文件存储的数据库MongoDB采用的GPL协议的改进版本SSPL。

LGPL

LGPL(GNU Lesser General Public License)即GNU 宽通用公共许可证)的缩写形式,是GPL的改进版,给予开源代码使用者更大的权限和自由。相比于GPL,LGPL同样具有“病毒传播”特性,任何使用基于LGPL协议开源代码的软件项目必须继续遵守LGPL开源,但如果仅仅将基于LGPL协议开源代码作为第三方代码库来进行调用实现自己的功能则允许闭源。LGPL协议将限制条件仅仅加到开源代码库的竞争对手身上,而对生态用户持容忍态度,这是它与GPL协议不同的地方。

目前,微软图形界面开发库WPF最大的竞争对手Qt即是采用LGPL协议。JPMorgan的企业级区块链解决方案Quorum也是采用LGPL协议。另外,虚拟机软件厂商VMware的Photon平台也是采用LGPL协议。

BSD

BSD(Berkeley Software Distribution license)开源协议,是现今使用最广泛的许可协议之一,给予开源代码使用者极大的权限。BSD只要求被许可者附上该许可证的原文以及所有开发者的版权资料,而不硬性要求新增代码遵从某一协议或继续开源。

使用BSD开源协议的项目包括Facebook的网页界面设计工具React、Google的Go语言、Google的浏览器Chrome、雅虎的轻量级css响应工具Pure.css、腾讯的移动端补丁修复工具Tinker。同时,Facebook的开源AI学习框架PyTorch、Intel的硬件优化AI学习平台Intel-Caffe也采用BSD开源协议。

MIT

MIT许可协议(The MIT License),在近几年受欢迎程度逐步提高,在学术机构最新的开源代码中常常见到这种许可。MIT本身不包含copyleft条款,故而是给予开源代码使用者最高权限与自由的开源协议。使用者仅需保留原始代码的版权声明,可以将其用在任何开源及闭源代码中,并可以进行任意修改。

目前,使用MIT许可协议的开源项目包括Google的网页设计增强库Angular、IBM的企业级网站框架Loopback、微软在Linux平台上的代码开发工具Visual Studio Code。同时,也包括一些新兴科技公司的项目,例如Airbnb的开发单元测试工具Enzyme、Twitter的网页前端开发工具Bootstrap。最后,MIT许可协议的使用者还包括大量学术机构及公立性国家实验室。目前,SIGGRAPH、ICCV、CVPR等学术顶会上发表的大量成果均以MIT协议形式开源。一些大型的科学项目同样采用MIT协议,比如美国Sandia实验室的科学数据可视化工具集VTK。

Mozilla

Mozilla协议,又称MPL(Mozilla Public License),由Mozilla基金会开发并维护,特点是在BSD与GPL之间追求平衡。Mozilla协议允许开源代码的使用者将原始代码与自有代码混合,包括私有许可证,但所使用的基于Mozilla协议的代码部分必须开源,并继续保持Mozilla协议。

目前,Mozilla协议包括Mozilla基金会下的主要开源产品Firefox浏览器以及Thunderbird邮件管理工具。同时,也包括一些其它项目,例如HashiCorp公司推出的分布式系统的服务配置工具Consul。

Apache

Apache许可协议,由Apache软件基金会发布。初始时主要为Apache软件基金会管理的开源项目所使用的,后期有大量的商业公司开源项目加入其中。Apache开源协议要求开源代码使用者必须在代码中保留任何原始著作权,专利,商标和归属通知,并且在更改代码文件时必须添加一条通知,说明对该文件进行了更改。Apache许可协议对版权的保护让它收到了商业公司的青睐。

目前,采用Apache开源协议的项目包括Apache软件基金会的web服务器工具Tomcat、大数据管理平台工具Hadoop和Spark,以及曾经由Sun公司开发的代码开发工具Netbeans。同时,一些商业公司的开源项目也采用Apache开源协议,包括Google的容器化工具Kubernetes、Docker公司的服务器虚拟容器工具Docker、苹果公司的Swift语言、Adobe的动画工具snap.svg、百度的自动驾驶项目Apollo、阿里的IoT管理平台AliOS。最后,现今最为流行人工智能开发框架Tensorflow也采用Apache开源协议。

表2:各类开源协议特点

数据来源:各类开源官网,安信证券研究中心整理

小插曲:开源协议与商业化有何关系?

经过对网上公开资料的调研,我们认为开源协议与商业化两者之间并没有明显的关系。开源协议本身仅是对代码相关行为进行约束。以GPL为例,它强制要求利用开源项目之后所有新增代码必须开源,但只要遵守开源协议,获得开源许可,任何商业化行为都是允许的。不过,出于保护自身产品,防止竞争对手快速模仿的目的,大多数公司并不愿意将自己的核心代码开源,因而催生出了购买商业化许可的需求。以Qt为例,Qt本来是遵从GPL协议发布的框架代码库,但如果付给公司每月约1000美元的license费,则可以将自己的产品保持闭源并用于商业化。而其他的约束较弱的协议如BSD、MIT等甚至不强制要求开放源码,那么进行商业化本身也没有任何障碍。

使用开源项目所带来的法律风险可能更多会来自版权法层面。开源协议只是授予用户使用代码及已经改动代码的对应权利开源项目的所有权,而非授予。故而,利用开源项目做附加开发或提供新服务均需要保证可以作为新产品认定,不然商业化行为就会触动开源项目所有者的版权诉讼,不过这与开源协议并没有任何关系。

表3:开源协议商业化许可相关要求

数据来源:项目官网,cnblog,CSDN

4、开源代码托管平台

开源项目托管服务平台,主要是为保证源代码多副本分布式存储,方便开发团队远程协作办公以及多分支版本而设计,目前主流的托管平台包括GitHub、SourceForge、BitBucket。

GitHub

由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。GitHub是现今最大的代码托管平台,2018年6月4日被微软宣布以75亿美元的价格收购。

GitHub分为付费账户和免费账户,付费用户允许更多人同时协作,并可进行企业化部署。目前,大量知名开源项目,如tensorflow、Android等均有位于GitHub上的仓库。Google、Facebook等巨头以及国内的BAT等一线互联网科技公司更是直接在GitHub上开立企业账户。

SourceForge

SourceForge是开源软件的开发者进行开发管理的集中式场所,也是全球最大开源软件开发平台和仓库。整体服务由VA Software提供主机,并通过SourceForge软件开发管理系统进行管理。SourceForge的历史更为悠久,但整体以软件发布及数据储存为主,缺乏针对开发者的附加功能,近些年影响力大减,目前主要以各大型开源软件历史版本保留和新兴中小项目发布为主。

BitBucket

Bitbucket是Atlassian公司提供的一个基于web的版本库托管服务,支持Mercurial和Git版本控制系统。Bitbucket提供的服务类似于GitHub,同样包含免费用户和付费用户。同时,Bitbucket与Atlassian 的其他服务(Git GUI SourceTree、HipChat、Cloud9)集成,目标用户以开发专有软件的专业开发者为主。

5、美国的出口管制对开源项目究竟有何影响?

从开源项目的管理者角度看,我们认为美国出口管制上的影响是,商业公司>开源基金会>个人开发者。

1、出口管制对个人开发者影响微乎其微,因为其所维护的项目多以中小项目为主,而且开发者个体遍布全球各地,不是美国一国政府可以掌控的。

2、出口管制对开源基金会会造成一定影响,尤其是注册地在美国的基金会。毕竟基金会作为非盈利法人实体,其运转与经营必须受到当地法律监督。不过开源基金会仅是开源项目的维护者,现有的开源协议受到开源协议保护及约束,正常使用并不受影响,除非基金会迫于压力修改开源项目协议。目前,Linux基金会、Apache基金会等均已对美国政府的声明表示了关切。

3、我们认为出口管制对由商业公司维护的开源项目影响是最大的。首先,商业公司的开源项目可能会迫于政府的压力改变开源协议,甚至转为闭源。更为重要的是,很多商业公司以打造开源项目为手段,实际是在销售自己的附加服务及产品,这些附加服务和产品会直接受到美国出口管制严格约束。本次华为受到Android限制就是典型案例,Android本身虽然开源,但Android搭载的Google Play、Google Drive等均为Google公司的商业服务,直接受到限制。

回归代码使用层面,如果一旦美国出口管制造成国内企业及个人开发者无法通过正规渠道访问开源代码,那么利用其它渠道取得后,开源协议又会对我国软件行业发展产生什么影响呢?我们认为这一点影响仍然微乎其微。如BSD、MIT等协议本身就对基于开源代码的二次开发没有强约束。如果是使用GPL协议的开源项目搭建商业产品,理论上需要开源,在这上面,一些国内厂商的海外业务也许会受到一些司法挑战。

最后,如果美国政府对开源代码托管平台限制,停止Github等公司对中国提供服务,又会产生哪些影响?短期内,国内厂商及个人开发者可能会因为无法直接访问Github而产生一些不便,从长远来看,这一举措会将国内开发者隔离出世界的开发者大家庭,不利于交流进步,这是需要注意的。国内目前也有自己的开源代码托管平台“码云”,国内geek开发者都是国际开源社区贡献最大的群体之一。在这个机会下,做大我们自己的开源代码托管平台非常迫切。

图3:码云是开源社区贡献最大的群体之一

数据来源:码云

总体来讲,我们认为开源出口管制风险分为短期和长期:

短期影响:

1、商业公司在开源项目上开发提供的基础服务和产品存在严重风险,例如安卓平台上的谷歌商店、谷歌地图等谷歌公司自己开发的应用和基础服务,第三方公司可以通过切断服务令国内的产品陷入瘫痪,而改弦易帜、投入其他平台或自研都需要时间,这面方面的影响最终是生态影响力之争。

2、现有GitHub等代码托管平台默认同意遵守美国的出口管制条例和美国法律,因此代码托管平台同时受出口管制和司法管辖权的限制,是最大的风险。长远来看,中国必须建立开源项目托管平台,并以更开放的方式吸引全世界的开源爱好者。

3、如果使用GPL类协议约束的开源软件,会存在风险,美国政府可能要求进行进一步的司法解释,国内使用相关协议的软件公司可能会存在法律漏洞。而MIT、BSD之类的协议约束由于效力弱,难以产生很大影响。

图4:开源法律约束总结

数据来源:中国开放指令生态(RISC-V)联盟,安信证券研究中心整理

长期来看,无“根”之痛再次为我国软件行业敲响警钟,加强基础投入刻不容缓。我国基础软件方面起步较晚,投入不足,竞争力有限,对源头技术、基础技术的投入力度不足,缺少具有全球生态影响力的开源软件生态体系。以人工智能产业为例,相比于传统IT产业,我国人工智能产业从发展初期就开始建立全面自主可控体系,但是在人工智能基础框架领域仍然非常薄弱,虽然商汤、百度等顶尖公司都有自主研发的深度学习基础平台,但大部分国内AI应用和创业公司实际仍然建立在谷歌TensorFlow、Facebook的Torch、加州伯克利Caffe等开源平台基础之上,一旦出现基础开源平台的限制,将影响其未来发展。

表4:人工智能主要开源平台均需要遵守美国相关公司法律

数据来源:各公司开源官网

5、国内各开源项目情况总结

1、云操作系统

阿里飞天操作系统:飞天系统是基于Linux,以C++为开发语言开发的一款分布式系统软件。它主要负责在集群上将最基础的数据存储和计算的模型通过C++的接口对外暴露,基于飞天平台阿里云可以开发更多的上层应用,形成自主可控的生态系统。

图5:阿里飞天产品架构

数据来源:阿里云

腾讯云操作系统:在开源项目OpenStack的基础上自研,由于OpenStack的开源属性,为了保证商用的完整性和稳定性,腾讯云必须在OpenStack上针对OpenStack进行二次开发,这同样需要自研能力。

浪潮云海OS:浪潮云海OS是基于OpenStack开源框架的云操作系统,是中国首款自主研发、开放、融合、安全的云数据中心操作系统。该系统能够在大规模数据中心运维、运营、配置管理、深度监控优化等领域对OpenStack进行补充。

图6:浪潮云海OS产品架构

数据来源:阿里云

2、桌面操作系统

目前,主流桌面操作系统除了Windows与MacOS,基本全部是由linux内核进行的二次开发。比如 Ubuntu, DebianGNU/Linux ,Fedora,Gentoo,MandrivaLinux ,PCLinuxOS,SlackwareLinux ,openSUSE,ArchLinux,Puppylinux,Mint,CentOS,Red Hat等。国产操作系统包括中标麒麟Linux(原中标普华Linux)、红旗Linux(Red-flag Linux),普华操作系统、冲浪Linux(Xteam Linux)、蓝点Linux 、新华Linux、共创Linux、百资Linux、veket,lucky8k-veket.Open Desktop、Hiweed GNU/Linux、Magic Linux、Engineering Computing GNU/Linux、kylin、中软Linux、新华华镭Linux(RaysLX) 、CD Linux、MC Linux、即时Linux(Thizlinux) 、b2d linux、IBOX、MCLOS、FANX,酷博linux、新氧Linux、Hiweed、Deepin Linux、雨林木风YLMF OS等。

3、移动端操作系统

Linux广泛应用于嵌入式设备,基于Linux的Android统领智能终端操作系统市场。由于具有移植性和可定制性强的特点,Linux被众多嵌入式设备选中作为操作系统,占据了62%的嵌入式市场,目前广泛应用在路由器、游戏机、电视、手机、平板电脑等设备中。在智能手机、平板电脑、智能电视等智能终端上广泛使用的Android操作系统就是基于Linux内核编写的。Android已经是全球智能终端操作系统的领导者,根据Statcounter统计,截止2018年7月,Android已经占据了80%的智能手机市场份额,在包含PC在内的所有终端设备操作系统中,Android自2012年开始迅猛增长,如今力压windows,以42.20%的占有率排行第一。嵌入式Linux操作系统将随着智能物联网的普及更加大放光彩。

5月24日消息,国家知识产权局商标局网站显示,华为已经申请注册“华为鸿蒙”商标,并标注该商品可用于操作系统程序。而早前第一财经曾曝料,华为从2012年开始规划自有操作系统,备用名即“鸿蒙”。

 

据已知消息,鸿蒙与安卓一样,都是基于linux进行的二次开发,可以最大程度地兼容安卓的APP,目前linux在电脑领域的应用生态也不错,基于linux来开发,在电脑领域的应用生态,也能解决很大一部分。传统上困扰国产操作系统发展的生态因素的影响将降至最小。

图7:移动端操作系统

数据来源:华为

4、服务器操作系统

Linux逐步主导服务器操作系统。自1993年至今,各种Linux的发行版几乎均可用作服务器的操作系统,Linux在服务器操作系统领域逐渐占据越来越多的市场份额。其中Linux的发行版Ubuntu Server、CentOS等在服务器领域中一直占据重要地位。在服务器的各具体应用分支中,Linux表现最为亮眼的是web服务器领域,自1995年Apache正式推出以来,开源、稳定、高效的特性使运行Apache的Linux服务器成为全球互联网服务提供商构建 Web 服务器的首要选择,LAMP(Linux操作系统,Apache,MySQL,Perl / PHP / Python)成为最强大的网站解决方案,提供了互联网70%以上的流量。在其他服务器应用分支,如数据库服务器,集群服务器等,Linux最初并没有得到广泛应用,不过由于各方面性能的提升,Linux正在被越来越多的企业选择,金融、交通、电信等对稳定性和安全性要求较高的行业,也逐渐愿意采用开源的Linux作为服务器操作系统。

图8:linux主导服务器操作系统

数据来源:linux

目前,国产服务器操作系统主要有中标麒麟,普华操作系统,deepin等,基本都是采用Linux内核进行的二次开发。

图9:常用基础软件开源风险小结

数据来源:各软件官网、CNKI

风险提示:中美贸易争端加剧;已有开源协议法规被强制修改。

格隆汇声明:文中观点均来自原作者,不代表格隆汇观点及立场。特别提醒,投资决策需建立在独立思考之上,本文内容仅供参考,不作为实际操作建议,交易风险自担。

相关阅读

评论