开源与 “半开源” 之间的战争和软件的历史一样久远
创始人
2024-03-02 17:47:29
0

HashiCorp 放弃开源原则这件事并无新意。

在加利福尼亚蒙特利召开的 Linux 基金会成员峰会 Linux Foundation Members Summit 上,最受关注的议题是人工智能和开源。而第二重要的话题涉及到 HashiCorp 放弃 Terraform 的 Mozilla 公共许可证 Mozilla Public License (MPL),转而采用 商业源代码许可证 Business Source License (BSL)1.1,以及由此引发的 OpenTofu 项目复刻。因 Linux 基金会对 OpenTofu 项目的支持,HashiCorp 的 CEO David McJannet 表现出极度的不满。

关于许可证切换、源代码复刻以及由此产生的争议,火热的讨论并未减少。但在我看来,有一点被人们忽视:人们一直误认为这是新鲜事物,实则不然。

之前已经有过不止一次,甚至不止十次,公司将开源代码转变为专有程序,或者隐藏在一个专有的包装中。

首先,人们经常拿走开源代码,但却抹去其许可证信息,然后就此继续下去。虽然这并不一定构成窃取行为,实际上,有些许可证,比如 MIT 许可证和两句版 BSD 许可证,完全允许公司和开发者在他们的专有程序中使用这些代码。例如,我们都熟知以下基于 MIT 许可证的程序,比如 Angular、.NET、Node.js、Ruby on Rails 和 React。

其次,有一些程序最初以开源的形式开始,但随着时间的推移,原始所有者和许可证规则发生了变化,以至于许多人甚至都不知道它们曾经是开源的。举例来说,苹果公司的 macOS 就是其中的一个典型。

你是否知道 macOS 曾经是开源的?确实,它曾经是。

macOS 的核心基于 Darwin,这是一种 Unix 操作系统。 史蒂夫·乔布斯 Steve Jobs 回归苹果公司时,引入了他的基于 Unix 的 NeXTStep 操作系统。到了 2000 年,苹果公司逐步放弃了他们的经典 Mac 操作系统,转而支持 macOS Darwin。除了来自 NeXTStep 的部分,Darwin 还大量借鉴了开源的 FreeBSD 和 Mach 操作系统的设计。

如今,如果你深入研究,仍然可以在 macOS 中找到 Darwin,它在 苹果公共源代码许可证 Apple Public Source License 2.0 下开源。虽然还有一项名为 PureDarwin 的工作正在努力制作一个独立的 Darwin 操作系统,但进展甚微。在这个过程中,苹果公司巧妙地减弱了一个重要的开源操作系统的影响力。更为常见的方式是开源软件以 “ 开放核心 open core ” 的方式融入商业程序中。简而言之,开放核心,与开源不同的是,这是一种商业模式。在这种模式中,公司基于一个免费的、开源的核心程序,然后通过加入商业版本或者专有的附加组件来发展。

此术语由 Andrew Lampitt 在 2008 年提出,虽然代表的并不是一个新的概念。他提出这个术语是为了替代混乱的术语 “ 双重许可 dual licensing ”。这个命名更改是为了 “消除误解,推广一个对于开源社区、付费客户和供应商都有利的商业模式”。同时,其目标也是为了消解我们现在在 HashiCorp 看到的 “ 诱捕并切换 bait and switch ” 类似的争议。

尽管我们可以辩论这是否是一个 “出色的商业模式”,但无可争议的是它已经成为一个非常流行的模式。然而,近年来,我们看到的趋势是,许多企业从开放核心模式退回到 源码可得 source-available 模式。在源码可得模式下,你可以查看所有的代码,但在某些情况下你不能修改或使用它。

例如,MongoDB 创建 了一种非开源许可证,即 服务端公共许可证 Server Side Public License (SSPL),以应对那些通过提供自托管版本和服务从其代码中获利的超级云计算公司。

并非只有 MongoDB 做出了这样的决定。Elastic 在开源核心模型运作的很好,但当亚马逊 AWS 等公司通过提供 ElasticSearch 服务赚取巨额利润时,Elastic 在 2021 年做出了 策略调整。它放弃了开源的 Apache 2.0 许可,转而采用非开源的 SSPL 和 Elastic 许可证。

Elastic 和其他几家公司(如 Redis 等)的此类做法,主要目的是阻止云服务公司将他们的开源程序作为一种服务而提供。然而,这个做法反过来对 Elastic 产生了负面影响,因为 AWS 对这个项目进行了 复刻。这一切是否让你想起了 HashiCorp?是吧。

尽管这些向非开源许可的转变惹怒了一些用户和很多开发者,但这些公司的业绩仍表现相对稳定。你可能对此感到不满,但事实是,对于这些公司来说,这种转变在一定程度上取得了成功。

接着,我们来看红帽公司的情况。红帽公司对其红帽企业 Linux(RHEL)代码的使用 施加了限制,只允许其客户使用。几十年来,红帽公司一直在权衡作为开源领导者与处理 RHEL 克隆产品(例如 CentOS,以及最新的 AlmaLinux 和 Rocky Linux)的关系。

随着时间的推移,红帽公司对与他人共享其代码表现出越来越大的犹豫。现在,你可以(且很多人确实正在这么做)辩论红帽公司不再是一个真正的开源公司。批评者认为,红帽公司虽然仍然严格遵守 GNU 通用公共许可证(GPL)的条款,但已经失去了开源精神。

虽然 RHEL 和与其相关的一系列程序仍在产生可观的利润,但红帽公司希望能够从中获取更多的收益,因此,它也开始逐步偏离开源原则。

实际上,所有这些案例的共同之处在于:对更大财富的欲望。如圣经所言,“贪财是万恶之根”。我不确定这一句话的真假,但我确实知道,对金钱的热爱和开源原则很难两全。

对于从开源软件中赚钱并没有错误之处。 理查德·斯托曼 Richard M Stallman (RMS)曾言:“工作寻求报酬,或者寻求尽可能增加收入,这并没有错,只要不采用破坏性的方式即可。” 然而,在 RMS 看来,“通过限制它们的使用来从程序的用户中挤取金钱,是一种破坏行为。”

尽管在现今开源软件与商业实践交汇的情况下,RMS 的观点可能并不如过去那样深受欢迎,但他仍然拥有众多的支持者。

(题图:MJ/b06e9a62-5c0d-49c5-a7b3-fd5af60ac0b1)


via: https://www.theregister.com/2023/10/27/open_source_vs_sort_of_open_source/

作者:Steven J. Vaughan-Nichols 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

游戏巨头跨界AI:Kraf...
【CNMO科技消息】12月16日,据外媒报道,韩国游戏公司Kraf...
2025-12-16 19:45:26
立中集团接待6家机构调研,...
2025年12月16日,立中集团披露接待调研公告,公司于12月16...
2025-12-16 19:17:20
英伟达发布“行业最高效”N...
IT之家 12 月 15 日消息,英伟达今日发布 Nemotron...
2025-12-16 16:46:23
12月16日金盘科技跌5....
证券之星消息,12月16日金盘科技(688676)跌5.15%,收...
2025-12-16 16:16:30
英伟达发布Nemotron...
当地时间12月15日,英伟达发布最新版开源人工智能模型系列Nemo...
2025-12-16 10:17:14
英伟达发布第三代开源人工智...
观点网讯:12月15日,美国芯片巨头英伟达发布了一系列新的开源人工...
2025-12-16 06:15:31

热门资讯

《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何理解Apache 2.0许... 提要:Apache 2.0许可证中的专利许可条款使得开源代码可以安全使用,但它经常被误解。Apach...