国内厂商 Onyx 违反 GPL 协议,中国开源何去何从?

作者 | 马超

责编 | 王晓曼

封图 | CSDN 付费下载自东方 IC

出品 | CSDN(ID:CSDNnews)

近日,中国电子书厂商Oynx拒绝开源其基于Linux 内核修改的设备源码,这一做法违反了Linux的GPL协议,在Reddit社区引发了开源软件如何在中国维权的大讨论。

凭心而论,阿里、腾讯、百度等大厂近些年来在开源方面贡献都很大,Oynx拒绝开放源码的行为可能纯属是个例,即使我们开源了飞浆、RocketMQ等多个优秀的开源软件,也无法对冲不遵守开源规则所带来的恶劣影响。

这已经不是开源社区与中国的第一次碰撞了,前阵子,知名开源云服务提供商HashiCorp表示:不允许中国境内使用、部署和安装该企业旗下的“企业版”产品和软件。

虽然最后这是一起乌龙事件,被限制使用的仅限于HashiCorp的加密软件。不过这一事件开了较坏的头,没准后续有可能还有更多的企业会做出类似的决定。

开源也会封闭,业界开始反思

作为全球最大的开源社区网站,GitHub在去年年中,开始对来自被制裁地区的用户加以限制了,分别有来自克里米亚和伊朗的GitHub用户发现自己的账号遭到了网站官方的限制。

由于以上原因,我国IT界对于开源软件的使用有了不同的声音,清华大学的刘利副教授表示“我国对国外开源基础软件的依赖,使一些国家可随时通过隐藏最新技术或版权,限制甚至阻碍我国科技发展。”

过去10年中,刘利老师的工作集中在自主研制国产地球系统模式耦合器。耦合器是实现气候预测与数值天气预报软件系统集成的一项关键核心技术。值得指出的是,2010年刘利老师开始从事这个方向的研究时,我国已广泛使用开源耦合器多年。不过即使有开源替代产品,刘利老师认为自主研发开源方案的替代品,并不是重复造轮子。

在接受《中国科学报》采访时,他再次表示,“长期使用国外免费开源基础软件,很大程度上制约了我国自主研发的积极性和创新能力,拉大了我国在相关领域与其他国家的差距,这无异于助长了对我国的‘科技侵略’!”

从实际情况上看,笔者不太认同刘利老师的说法,盲目的抄袭当然是有害的,但是借鉴开源软件的思路和想法,对于我国乃至整个IT产业来说都非常重要。如今中国 GitHub 开发者数量年增长 37%,并拟在中国设立分公司。在如今IT技术发展日新月异,拥抱开源、互通共享已逐渐成为业界的共识,在这种情况下,获取开源技术社区的支持是无比重要,不过这种支持是相对的,同时要求我们在使用开源时,尊重开源规则。

初识开源协议


说起开源协议,就不得不提GNU。其官方定义是一个“GNU is Not Unix”,这是官方给出的递归定义,永远也找不到本意。

可以将它理解为一个自由软件工程项目或者一种计划,是由Richard Stallman在1983年9月27公开发起,它的目标是创建一套完全自由、开放的操作系统。1985年10月,Richard Stallman创立了自由软件基金会(FreeSoftware Foundation ,FSF),其主要工作是执行GNU计划。为了保证GNU软件可以自由的“使用、复制、修改、发布”,同样禁止部分人在GNU软件的基础上自己修改并发布的软件中添加任何限制他人自由使用的条款,在这个情况下就诞生了GNU的许可条款,再后来又产生了其他的(非GNU)许可条款,统称为开源许可协议。

这里列举了最常用的几种开源协议:

  • GPL (GNU General Public License) :GNU通用公共许可协议

  • LGPL (GNU Lesser General Public License) :GNU宽通用公共许可协议

  • BSD (Berkeley Software Distribution) :伯克利软件分发许可协议

  • MIT (Massachusetts Institute of Technology):MIT许可协议之名源自麻省理工学院,又称“X许可协议”或“X11许可协议”

  • Apache (Apache License) :Apache许可协议

  • MPL (Mozilla Public License) :Mozilla公共许可协议

如果将开源协议具体用途的决策点进行分类,那么其导图如下:

开源规则的反思


本次事件的起因是因为oynx的文石科技没有遵守开源协议造成,客观的讲oynx的做法虽然不具有普遍性,但是我国科技公司对于知识产权的重视程度是不够,这点的确值得国人反思。

我们很熟悉的视频、音频处理项目FFMPEG和Linux都是采用了GPL。GPL协议和BSD、Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种Linux原因。

不过还是有很多商业软件使用 FFMPEG 的代码但并未遵循 LGPL/GPL 许可证的要求,因此FFMPEG的组织方使用“耻辱柱(Hall of Shame)”来公示那些违反 GPL 许可证使用FFMPEG代码的其公司,其中有很大一部分是中国的知名企业,为此整个业界也都欣起了轩然大波。

最近笔者发现国内最早的开源操作系统项目MiniGUI也发布了例外清单,https://www.fmsoft.cn/exception-list,对某些未遵守GPL协议的公司进行了例外处理。虽然这些还没有升级成我国IT界与开源社区的冲突,但是笔者还是要呼吁业界,在在使用开源软件的时候一定要注意遵守相关规则。

如果要问两年前中国最大的文化输出是什么,那这可能是大刘的科幻,也可能是莫言的小说;而如果现在要问这个问题,那它的答案应该是开源。十年前业界流传“代码正在吞没世界”的观点,现在IT界普遍认为“互联网世界的一切源自开源”,希望开发者们遵守开源规则,用好开源软件。

更多精彩推荐
☞一年一度程序员“补课”季来袭,618 背后技术大公开!
☞外媒:美国考虑封杀TikTok等中国社交应用;微信小程序将支持分享到朋友圈;Kotlin 1.4-M3 发布 | 极客头条
☞漏答题、偏科、多次复读,30 位互联网大佬考上啥大学了?
☞云计算与星辰大海的结合——不要回答,来自百亿光年外的未知信号
☞用机器学习还原《隐秘的角落》那些被修改的台词
☞一文速览 Eth2.0 的 7 大客户端进展
点分享点点赞点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统重构的道与术

最近参与了很多重构项目,有以提高服务器资源利用率为目标的Gateway网关、AMAPS等服务的重构,也有以提升架构合理性和研发效率为目标的共享业务服务化拆分,借此机会把相关内容梳理一下,是分享更是自我总结和学习。准备以重构工作中…

小程序开发(4)-之登录

#为了获取token,所以需要搞个模拟登陆,用一个特定的账号,对密码进行md5加密,也只是在app.js那里进行一次调用,这里主要是说一下globalData.checkLogin、checkLoginReadyCallback,这时this指向的是全局的app…

SpringBoot2 整合 AXIS2 服务端和客户端

文章目录一、AXIS2服务端1. 版本选型2.导入依赖3. services.xml4.Axis2配置类5.服务接口6.服务接口实现类7. FileCopyUtils工具类8. 测试验证二、AXIS2服务端2.1. 客户端类2.2. 服务调用测试开源源码.一、AXIS2服务端 1. 版本选型 阿健/框架版本spring-boot2.5.5axis21.7.9 2…

阿里风控大脑关于大数据应用的探索与实践

以下内容根据演讲视频以及PPT整理而成。本次分享主要围绕以下三个方面: 一、阿里风控大脑整体介绍二、近线引擎三、离线引擎一、阿里风控大脑整体介绍1. 阿里风控大脑是什么? 阿里的风控主要分为两大块。一块是金融领域,主要业务是支付宝,另…

我和美国 AI 博士聊了聊:2020 年,这件事比存钱更重要!

今年还有什么比股市更赚钱的技能?那就是正处于 IT 风口的人工智能所需的 Python 。我见过市面上很多的 Python 讲解教程和书籍,他们大都这样讲 Python 的:先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Pyth…

idea创建springmvc项目

文章目录1. 创建项目2.配置3. 加载tomcat4. 完成5. 启动项目6. 效果图7. 修改访问路径1. 创建项目 2.配置 3. 加载tomcat 4. 完成 5. 启动项目 6. 效果图 7. 修改访问路径

Java工程师该如何编写高效代码?

阿里妹导读:世界上只有两种物质:高效率和低效率;世界上只有两种人:高效率的人和低效率的人。——萧伯纳 同理,世界上只有两种代码:高效代码和低效代码;世界上只有两种人:编写高效代码…

小程序开发(5)-之封装组件

小程序的组件和页面的代码结构是不一样的,不是像vue、react那些一样,页面是通过Page生成,组件是通过Component,下面介绍下常用到的 #data 很明显和页面上定义的data没有差别 #properties 接收的属性,类似于vue中的…

Terraform Module 可视化正式发布

可视化操作界面 12月12日,阿里云开放平台正式对外推出 Terraform Module 的可视化操作界面:https://api.aliyun.com/#/cli?toolTerraform,集合所有在 Terraform Registry 上注册过的 Module,对外提供在线运行 Terraform Module …

@FeignClient注解 中属性 contextId使用

如果我们使用Feign定义了两个接口,但是目标服务是同一个,那么在SpringBoot启动时就会遇到一个问题: Description: The bean ‘optimization-user.FeignClientSpecification’, defined in null, could not be registered. A bean with that …

“编程能力差的程序员,90%输在这事上!”谷歌AI专家:都是瞎努力!

Google 人工智能开发者专家彭靖田老师说——超90%的程序员在初学Python 人工智能时,都会遇到下面3个问题:1.想学人工智能,但不知从何学起,也不知道该选择什么方向...2.Python语法、机器学习/深度学习框架、算法都能看懂&#xff0…

小程序开发(6)-之自定义导航栏

#如图一所示,我们在导航栏中加了个文案和搜索框第一步我们需要在app.json->window设置,还可配置更多的选项 : {"navigationStyle": "custom","backgroundTextStyle": "light","navigationB…

ClickHouse深度揭秘

引言 ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内社区火热,各个大厂纷纷跟进大规模使用: 今日头条 内部用ClickHouse来做用户行为分析,内部一共几千个ClickHouse节…

国货在崛起,八成都做对了这件事

来了!阿里巴巴年度最大的商业大会,第二届ONE商业大会。 此次ONE大会上,国货品牌的崛起成为所有人瞩目的焦点:8成知名服饰企业已同阿里云手拉手,收入平均增速24%! 阿里云智能总裁张建锋(中&…

小程序开发(7)-之获取手机号、用户信息

#先说下获取手机号的步骤,首先要调用wx.login拿到code,把code发送到我们的服务器(开发者服务器)上,后台通过appid、appsecret(小程序后台那里生成的)、code向微信接口服务拿到session_key、openid等信息,到这里其实我们已经可以直…

nacos 集成 zipkin sleuth实现链路追踪(入门篇)

声明:链路追踪属于微服务的一部分,微服务系列博文陆续会出,可以帮助小伙伴们学习微服务一站式从入门到精通。 文章目录一、zipkin 服务端1. 下载2. 前台运行3. 服务端访问二、网关服务2.1. 父项目依赖2.2. gateway依赖2.3. gateway配置三、订…

开源巨头 SUSE 收购 Rancher Labs,云原生时代来临

作者 | 马超责编 | 伍杏玲封图 | rancher.com官网出品 | CSDN(ID:CSDNnews)近日,全球最大的独立开源公司SUSE宣布收购云原生初始公司Rancher Labs。针对此交易,SUSE首席执行官Melissa Di Donato表示:“我们…

小程序开发(8)-之跳转第三方小程序设计

嗯嗯,这个其实没什么好说,但还是说说我们项目的做法,因为我们这里需要跳转的小程序挺多的,所以我们采用了在后台配置的,像图一一样,配置名称、appid、跳转的页面地址等 wx.navigateToMiniProgram({appId: …

微服务专栏

文章目录一、后端框架1. Spring Boot2. SpringCloud3.SpringCloudAlibaba二、 流行组件2.1. 服务发现2.2. 网关动态路由2.3. 认证授权2.4. 远程调用2.5. 流控服务降级2.6. 消息队列2.7. 分布式缓存2.8. 消息总线2.9.分布式事务三、 前端框架3.1. Vue3.2. LayUI3.3. Bootstrap一…

使用函数计算三步实现深度学习 AI 推理在线服务

目前深度学习应用广发, 其中 AI 推理的在线服务是其中一个重要的可落地的应用场景。本文将为大家介绍使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖、一键部署、本地调试以及压测评估, 全方位展现函数计算…