关于GPL协议的理解(开源与商用、免费与收费的理解)

来源:csdn博客 分类: 文章浏览史 发布时间:2022-09-27 10:53:43 最后更新:2022-09-27 浏览:187
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2022-09-27 10:53:43

总结下来有下面几点:

如果你用了我的 GPL软件,那么你的软件也必须要开源,否则就不能使用我的软件,你是否把你的软件商用和我没关系 Oracle 卖的不是软件的版权,而是技术服务 MySQL作为一个开源数据库,几乎所有的用户都只是通过自己的程序去操作这个数据库,不涉及到改动源码的问题,根本不用去考虑是否要遵循 GPL的问题。 只有在你修改MySQL源码的情况下,才需要考虑GPL 导读:

 网络上多数朋友担心甲骨文会对MySQL软件采用收费模式,多数朋友也不清楚MySQL开源到底是什么模式,开源=免费嘛?是很多的疑 问,MySQL是遵守双重协议的,一个是GPL授权协议,一个是商用授权协议(注释:为解决其他企业用MySQL软件牟利或引用了MySQL的源代码而不 想开源),虽然www.mysqlops.com也有写关于MySQL版权的来龙去脉,但是这篇文章写更透彻与详尽,特转载ITPUB上的帖子,希望大家 能够更加清晰!

 最近刚把MySQL和GPL的玩法搞明白,很是惭愧,居然花了这么久的时间才想通。不过聊以自慰的是,搞明白这个玩法的人真是不多,尽管有些人已经搞了很多年。

 看过GPL协议的人应该都会觉得一头雾水,究竟GPL在讲些什么。我看过好几遍,英文的原版、中文的各种译文,都没能真正理解,后来是从软件行业的 历史等等方面综合考虑,才算是理解了。先总结一下我对GPL的理解,我认为GPL的精髓就是开源,和是否商用,是否收费完全没有关系。GPL(General Public License), 其实从字面上就可以理解为公共许可证,也就是说遵循GPL的软件是公共的,其实不存在什么版权问题,或者说公众都有版权,GPL提出了和版权 (copyright)完全相反的概念(copyleft)。而我经常听到的说法是如果你的程序或系统引用了别的GPL软件,并且向用户收费,那么你就需 要向引用的GPL软件购买版权。听上去很合理,如果你用我的软件赚钱,那你当然应该向我支付一定的费用。但其实是错误的,正确的概念是如果你用了我的 GPL软件,那么必须你的软件也要开源,如果你不开源,那么就不能使用我的软件,你是否把你的软件商用和我没关系,如果你不能遵循GPL协议来开源,那么你付再多的钱也不能用GPL的软件, 事实上很多GPL软件是很多人共同完成的,每个人在前人的基础上做出自己的贡献,如果收费的话你把钱交给谁?提出 GPL协议的GNU希望做到的是通过开源来使软件行业得到一个好的发展,试想如果你要做一个大型的软件,不在前人的源码基础上开发,那必然会是旷日持久 的,也会有很多重复劳动,显然不利于软件技术的发展。所以理解了GNU的精神,也就能理解GPL在说些什么,其实就是开源。在现实生活中,我们受益于 GPL的地方,其实很多,几乎所有的操作系统,除了windows,其他的几乎都是基于linux开源代码改写的。

 再来谈MySQL,这是个开源的数据库,做技术的应该都知道。MySQL最早是瑞典的一家叫做MySQL AB的公司开发的,它是以双授权的方式来发布MySQL。一种授权就是GPL,另一种授权就是商业授权。也就是如果你不能满足GPL,那么就走商业授权的 路线,向这个公司交钱。我觉得这公司有挂羊头卖狗肉之嫌,想借着GPL快速传播它的软件,但又留着商业授权这个收费的口。后来这家公司以10亿美金的价格 被Sun收购,接着Sun又被Oracle收购,MySQL成为了Oracle的东西。现在Oracle把MySQL分为三种产品,标准版、企业版和集群 版。不谈其中具体的差异,但都是以年度订阅(subscription)的方式来卖的。这个subscription引起了我的疑问,如果用户购买了一 年,那么第二年用户还要继续付费才能合法使用?这三种版本都包含了一年的服务,那么如果第二年用户只需要用软件而不需要服务,怎么办?Oracle官方没 有一个说得过去的说法。后来我想通了,其实Oracle卖的不是软件的版权,也不是寂寞,而是技术服务。所 有的GPL开源软件都不能卖版权,因为是公共版 权,当然不能卖了。所以像redhat这类的开源软件都是用subscription的方式来赚钱的。赚钱其实是合法的,GPL协议里面写了“Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish)我们的GNU通用公共许可证决意保证你有发布自由软件的自由(如果你愿意,你可以对此项服务收取一定的费用)”。但现在大众的误区是觉得购买的 是软件产品的版权而不是服务。其实你要用GPL软件在绝大部分情况下都是合法的,不存在版权问题,那么在什么情况下才算是非法的呢?

 前文一直提到“用”GPL软件的情况,这个“用”可能并不合适,GPL的原文“the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program保证你的共享和修改自由软件的自由”。可以理解为你使用开源软件并不受GPL约束,只有在你基于开源软件,修改开源软件的源码的时候才受 GPL约束。MySQL作为一个开源数据库,几乎所有的用户都只是通过自己的程序去操作这个数据库,不涉及到改动源码的问题,根本不用去考虑是否要遵循 GPL的问题。只有在你修改MySQL源码的情况下,才需要考虑GPL。

 如果我根据MySQL的源码开发出了一个新的数据库,我觉得自己开发的源码非常的优秀,想靠这个卖钱,不想公开源码。那么这种情况就无法满足GPL 的规定,我没法发布我的数据库。好在MySQL有个非常流氓的双授权,我就可以购买其商业授权来达到我的目的。为什么说这是流氓行为?因为既然MySQL 是根据GPL开源发布,多多少少有各路人马贡献自己的源码才成为今天的MySQL,卖别人的劳动成果来让自己受益,这就是流氓的做法。

 所以GPL就是一个为了保护软件自由的一个协议,它强调的是开源,与钱无关。MySQL是一个双授权的软件,Oracle现在卖的是年度的服务(编者加注:另外主要收入来源是销售数据库维护工具), 如果你只是使用MySQL而不是改写MySQL,那么在这些情况下你应该考虑购买Oracle的商业版本,一是Oracle的商用版本提供的附加组件(监 控器、备份工具等)对你有价值,二是Oracle的年度技术支持是你需要的,三是各种潜规则。而不应该是你想合法的使用MySQL才去购买其商业版本。另 外,如果你是基于MySQL的源码开发你自己的产品,那么你需要购买的是商业授权,而不是subscription这些商业版本。

 前面正儿八经的分析了GPL和MySQL的问题,接下来要玩粗的了。狗日的Oracle原厂的人老是说用了MySQL而不开源就应该向Oracle 购买 MySQL商业版本。他妈的搞了这么多年MySQL还没搞明白这个问题?这种说法根本不合逻辑也没法操作,我的系统可以定义一个子系统叫做数据库连接,里 面的代码就是连接数据库,我把这子系统公开源码就符合你的逻辑了吧,这么不严谨的说法漏洞太多了,还他妈叫着要告谁谁的,你告告试试,看看出丑的是谁。可 能有人觉得他们其实是明白的,只是在欺骗客户来牟利。不过真别高估了这帮人,他们真没搞明白也是完全有可能的。别老觉得redhat做的多成功,卖的多 好,MySQL一定也能像redhat一样卖的好。redhat怎么做的我没仔细研究过。不过肯定存在两种可能,一是redhat提供了客户需要的技术服 务,二是客户也是被欺骗的。如果是第一种情况,那么说明redhat原厂做的好,不管是自己原厂的技术服务还是代理的技术服务,肯定是有一套很不错的服务 体制,MySQL有吗?如果是第二种情况,客户总有一天会变聪明,被redhat骗了一次还会被MySQL再骗一次吗?其实是可能的,比如各种运营商、政 府部门等等机构。

 

 

转载至https://www.cnblogs.com/zjoch/p/4903553.html

 

Linux免费,Red Hat收费,这是一种讽刺吗?怎么看待这个问题?

 

 

RH 这么搞完全没有问题,开源协议摆在那边,只要不违反它们随便你怎么搞都行。哪怕是最极端的自由软件协议,像 AGPL 那样的,也不会禁止你拿使用它软件卖钱(当然前提是作者不额外附加不许卖钱的条款)。这种商业模式也不只有 RH 在用,另外小点的软件像 macOS 下有一个叫 Keka 的压缩软件,本质上跟开源免费的 7-Zip 联系很紧密,本身也是开源软件,但是这不影响他们在 Mac App Store 上卖钱。

那句话怎么说的来着,法(许可协议)无禁止即可为。


而且 RH 干的某种意义上来说也不是拿软件卖钱,收费的 RHEL 几乎所有东西都是开源的,不然也不会有当初的 CentOS 和现在的 Rocky Linux 了。而且只要符合许可,再进行商业衍生也完全没有问题,阿里的 AliOS、华为的 openEuler/EulerOS,亚马逊的 Amazon Linux,王八壳的 Oracle Linux 以及传说中的 TencentOS(笑)等等等等都是这么来的。

RH 赚钱主要还是靠的服务,包括各种技术支持、人员认证(RHCSA、RHCE、RHCA 等等)之类的,当然还有他们多年积累下来的庞大且详尽的知识库以及 OpenShift PaaS 之类的东西。

具体到 RHEL 上的话:

  • 一般人对它最大的印象应该就是它的软件一般都很老。但实际上如果你有留意的话,它用的软件在发布的时候其实都不算老。就拿 Linux 内核来说,RHEL 8 发布于 2019 年五月,使用的是 Linux 4.18,也就是当时最新的 LTS 分支。而之所以会感觉它老是因为 RH 为了保证兼容性会一直维护发布时的版本,让他们的客户在支持周期内不用担心迁移的问题等等。具体例子的话就比如说 2007 年发布的 RHEL 5 在 50 天前(2020 年 11 月 30 日)才刚刚停止 ELS 支持,他们给那时候 Linux 2.6.18 等等的提供了整整 13 年的支持和安全更新。
    • Linux 2.6.18 在 2007 年就不再被 Linux 官方支持了,RH 自己给它做了这么多年的支持。另外软件也是差不多的情况,毕竟一般情况下谁会愿意收拾那么老的烂摊子。而红帽这边是只要你给够钱你就能一直用。
  • 各种企业需要的基础设施。比如说 RH Identity Management,可以想成是 Linux 上的 Active Directory。这个项目有开源的版本,叫 FreeIPA,基本上可以认为是 Linux 上仅有的完整的开源 Directory Service 解决方案。RH 是它和它的 LDAP 实现(389DS)的直接上游。收费的版本程序本身跟 FreeIPA 基本没差别,但是收费的版本遇到问题能找红帽的人解决,也能看他们知识库里面的文章自行排查。而 DS 这种东西偏偏复杂得不行,自己搞很容易出问题。
  • 各种为了提高可用性而提供的功能。比如说内核热补丁,可以在不重启的情况下直接修复内核的 bug。实现这功能程序本身主线 Linux 里面就有,甚至有两套(一套是 RH 贡献的,一套是 SUSE 贡献的),理论上不花钱自己也确实可以搞。但是热更新最重要的是及时提供对应的补丁,可是一般人上哪儿找去。
  • 技术支持。遇到问题电话打过去他们帮你想办法解决,哪怕不完全是 RH 的问题他们也能帮你联络。虽然确实挺贵的但是总比在自己公司给大佬们发工资便宜。

隔壁 SUSE 的 SLES ,甚至是 Canonical 的 Ubuntu Advantage 都是差不多的情况。但是软件本身 RHEL 和 CentOS、SLES 和 openSUSE 之类的比起来差别真没多大,主要就是支持周期和各种额外服务的差别。

另外顺带一提,RH 和 SUSE 这两大企业级 Linux 发行版提供商对在赚钱之余对整个开源社区也作出了很多的贡献。除了前面提到的 Linux 内核热更新基础设施之外还贡献了数不清的开源项目,从有贡献到是金主到直接是上游的都有。像 Linux Foundation 发布的这篇文章里面说的,除了硬件公司之外贡献最多的就是 RH 和 SUSE 这两家了;KDE 背后的组织 KDE e.V. 里面很多人也是 SUSE 的雇员,GNOME 那边也有不少来自 RH 的贡献。CentOS、Fedora、openSUSE 之类的优秀发行版本身就更不用说了。夸张点说的话,有他们这样的公司存在对谁都是好事。


说回“Linux 免费”这个问题。Linux 确实是免费没错,但是这跟它是开源软件没有关系。这个误解一般来自于宣传时说的“Free”这个词。问题就在于人家那个 Free 是自由的 Free 而不是免费的 Free。Free as in Freedom 这句口号 FSF 喊了可不止一年两年了,FSF 上介绍自由软件概念的文章甚至有中文版(

什么是自由软件? - GNU工程 - 自由软件基金会​www.gnu.org

 


另外 Linux 严格来说并不是 FSF 眼中的完全原教旨的自由软件,更严谨的叫法应该是开源软件。按照 FSF 的标准来看自由软件是不能有任何闭源的不可修改的部分的,因为那些闭源的东西影响了用户自己修改这些软件的自由。而主线 Linux 里面不少驱动实际上是要加载闭源固件才能正常工作的,毕竟不是所有厂商都愿意把驱动给完全开源,为此才有了开源驱动配闭源固件这样的曲线救国方案。而且这种情况下那些闭源固件可以不用遵守 GPL。比如说 iwlwifi 正常工作所需要的固件,是以 Intel 自己写的协议而不是 Linux 本身的 GPLv2 发行的,完全说不上“自由软件”。在 FSF 的理念里这种做法跟闭源软件一样不能接受。但是 FSF 管不到 Linux,Linux 项目最高权利现在就在 Linus Torvalds 本人手上(用他自己的话说就是 Linux 是他的个人项目),Linus Torvalds 也不反对这种做法。于是 FSF 的人就搞了个 linux-libre 的分支,移除了所有的固件和加载闭源固件的能力。这样倒是可以说是自由软件了,但是代价就是现在的机器上很多硬件都会无法正常工作,显卡和网卡是重灾区。

类似的意见不合其实还有不少的。另外还有一个比较有意思的事情是 Linux 并没有使用 GPLv3 协议的原因之一是 Linus Torvalds 不喜欢 GPLv3,而这里面很重要的一个原因是 GPLv3 有被叫做 anti-tivoization 的限制。这个词的来源是有个叫 TiVo 的做 DVR 设备的公司,并且在他们的产品里使用了 Linux。他们有好好的遵守 GPLv2,放出了需要放出的源代码,但是不让用户在他们的设备上使用自己修改了的程序,等于是钻了个 GPLv2 的空子。FSF(或者说 RMS)知道了这个事情之后就在 GPLv3 里面加上了不允许这种行为的条款,但是 Linus Torvalds 并不希望限制此类行为甚至有公开批评过 GPLv3。而 Linux 的代码著作权是分散在各个贡献者手上的,就算不考虑 Linus Torvalds 独掌大权这个事实,哪怕所有别的贡献者都想换上 GPLv3 只要 Linus Torvalds 不同意就没办法。

两边看法各有各的优劣吧,反正我比较喜欢 Linus Torvalds 的做法(小声

 

转载至https://www.zhihu.com/question/266126273

 

php技术微信