开源软件和自由软件之间有什么区别?

自由软件、开源软件、FOSS、FLOSS。它们是相同的吗?不同吗?这重要吗?
763 位读者喜欢这篇文章。
open envelope

Opensource.com。CC BY-SA 4.0。

您使用“开源软件”还是“自由软件”?虽然自由软件许可证(四个自由)和 开源许可证(开源定义)有不同的规则,但从这两套规则中并不明显的是

  1. 这两个术语实际上指的是同一组许可证和软件,并且
  2. 每个术语都暗示了不同的潜在价值观。

换句话说,尽管“自由软件”和“开源软件”这两个术语实际上指的是同一组许可证,但它们是通过不同的途径达到该组的。(结果并非完全相同,但差异不太可能在广泛范围内产生影响。)而且,即使许可证相同,一个人对术语的选择也可能暗示对价值观的不同强调。

“自由软件”的概念是由 Richard Stallman 在 20 世纪 80 年代提出的。重点是软件接收者被允许对软件做什么:“粗略地说,这意味着用户有自由运行、复制、分发、研究、更改和改进软件。”

“开源”侧重于这些许可证实现的实际结果:令人惊讶地有效地进行软件开发协作。自由软件先出现。后来,人们逐渐意识到自由软件正在导致卓越的协作动态。1997 年,Eric Raymond 的开创性文章“大教堂与集市”将注意力集中在自由软件对软件开发方法论的影响上。

在“为什么开源错失了自由软件的重点”中,Stallman 解释说:“这两个术语描述了几乎相同类别的软件,但它们代表了基于根本不同价值观的观点。开源是一种开发方法;自由软件是一场社会运动。”

不同的价值观?是的。但并非相互排斥。许多人并没有与其中一个或另一个保持一致,而是发现每个术语背后的价值观在不同程度上引起共鸣。

澄清困惑

许多人并没有与其中一个或另一个保持一致,而是发现每个术语背后的价值观在不同程度上引起共鸣。
如果有人想在不指定潜在价值观的情况下提及这种类型的软件怎么办?尴尬的是,没有一个被广泛接受的术语可以指代许可证或软件,而对每个术语所暗示的价值观保持中立。换句话说,我们 缺乏 第三个术语,该术语指的是相同的软件和相同的许可证集,但对于该软件和这些许可证为何重要不偏袒任何一方。可能是“开源”最初被期望成为一个中性术语;然而,它已经发展出自己隐含的价值观。

最接近中性术语的是 FOSS(自由和开源软件)或 FLOSS(自由/libre/开源软件),它们在履行价值中立角色方面取得的成功有限。或许这两个术语(有“L”和没有“L”)的存在可能已经稀释并因此削弱了其中任何一个成为广泛使用的术语的能力。

这些术语的组合造成了混乱。中性术语有用吗?或者试图分离相关价值观是否是一个有缺陷的目标?中性术语是否不合适,因为存在一些重要的自由软件项目,它们不会被认为是开源的?或者 反之亦然?请在评论中分享您的想法。

User profile image.
Scott Peterson 是 Red Hat 法律团队的成员。很久以前,一位工程师向 Scott 咨询有关一份名为 GPL 的奇怪文件的法律建议。那个命运攸关的问题开启了一条探索协作开发法律方面的曲折道路,包括技术标准和开源软件。

22 条评论

Richard Stallman 可能对他所说的自由软件有自己的想法,但从字面上理解,它只意味着它是免费的,并不一定意味着它是开源的。您也可以是开源的但不是自由的;例如,拥有部分开源专有软件的专有公司。FOSS 和 FLOSS 已经尽可能清晰了。

Pittman 先生,您错过了重点,因为 Richard Stallman 发起了自由软件运动,他对自由软件的理解是 唯一 的理解。当您谈论免费软件时,它被称为“免费软件”,并且与“自由软件”完全不同。
例如,Adobe Flash Player 是一款免费软件,但绝不是自由软件。

Stallman 总是强调说:“自由是自由的,而不是免费啤酒。”

也许现在就会清楚为什么经常使用“LIBRE”代替 free。

回复 作者 Greg P

抱歉,我不同意。Richard 无法控制他的术语“自由软件”的定义方式,而且这在现实世界的使用中是显而易见的。

回复 作者 Mobius(未验证)

我完全同意这一点。

此外,另一个资源是 Richard Stallman 的页面本身
https://stallman.org/solidarity-economy.html

即这一部分
> 自由软件的伦理哲学——理解、使用、修改、复制和分发软件的自由

据我所知,自由软件意味着它是开源的。否则修改将是不可能的,而修改是“自由软件”术语的支柱之一。

回复 作者 Mobius(未验证)

我所有使用免费软件的经验都表明自由软件和免费软件是同义词。

回复 作者 Mobius(未验证)

我不确定您是如何从字面上理解自由软件这个术语的。但是,自由软件不一定意味着它是开源的这种说法是完全不准确的。只需阅读 https://gnu.ac.cn/philosophy/free-sw.en.html 这 4 项基本自由,您就会明白原因。还要回复您后来的回应,您说您不同意,这不是同意不同意的问题,我们在这里谈论的是不可辩驳的事实。

回复 作者 Greg P

在我以前的雇主那里,我们使用“FOSS”来指代这种软件。它被认为是“3PP”(第三方产品)的子集,旨在涵盖所有非内部编写的软件,包括那些受商业许可条款约束的软件

这是一篇精彩的文章!我是一名偶尔担任兼职教授,教授 CSCI 开源软件的可用性,您的文章 正是 我们在第一周涵盖的内容:什么是“自由软件”,什么是“开源软件”。

下次我教这门课时,我可能会链接到这篇文章。

创建一个涵盖两者的单一术语与自由软件的理念背道而驰。开源行业试图混淆这两个术语的微弱尝试是令人反感的。

GPL 试图强制执行软件的自由。根据 GPL 发布的任何代码都应始终按照 RMS 定义的四个自由提供。任何低于此标准的都是完全不可接受的。

开源纯粹是一种商业回应,它允许代码隐藏在专有壁垒之后,就像微软在将 BSD 的 TCP/IP 堆栈放入 Windows NT 时所做的那样。除非您知道如何在系统目录中搜索许可证的文本,否则甚至没有任何证据表明它的存在。他们不知何故忘记在随系统分发的手册或文献中注明其存在,正如该许可证所要求的那样。

我完全同意。开源软件创建者仅满足于他们试图使他们的代码对所有人“开放”。他们不太关心他们的代码如何被其他人实现。开源软件可能会被修改和重新分发代码的人变成专有的。

Stallman 甚至确保以自由/自由软件形式发布的代码即使有人更改、修改或分发代码,也将保持自由。这样,自由代码几乎永远不会变成专有的。

回复 作者 Robert McConnell(未验证)

呃,您是否意识到 Linux,作为开源项目的巅峰之作,是在 GPL 2 许可下获得许可的,这正是您所规定的(即,代码库的修改版本必须以 4 项自由许可)。
自由软件和开源软件之间的界限可能非常细微。在所有实际用途中,这两个词都是同义词。更重要的是哲学上的不同。OSS 中四项自由的基本原理是它可以非常高效并提高整体产品质量。FSS 的理由是维护最终用户的自由——即使这意味着牺牲质量。

回复 作者 Mobius(未验证)

我不得不说,我略微不同意每个术语都有不同的隐含价值观。这些术语本身并没有价值,但它们采用了我们从业者赋予它们的价值。我们不应该关注使用的术语,而应该关注我们打算用它传达什么:我们是指开发模型还是指哲学?两者都是可能的,使用任何一个术语,人们可以互换使用它们。

我同意 Jonas 的观点。使用这两个术语来分裂本应团结的全球社区,正如一首歌所说的“老人的瓦砾”。现在需要做的是将开源自由软件的用户与他们从中获得的利益的起源重新联系起来。这个起源就是软件自由,明确有权使用、改进和共享您所依赖的软件的确定性,而无需寻求进一步的许可。

我在这里写了更多内容:https://meshedinsights.com/2017/06/07/free-vs-open/

回复 作者 Jonas Öberg(未验证)

开源仍然可以出售。例如看看 StarOffice 或 Redhat Linux。

“开源”的常用含义(常用含义 != 官方定义。另请参阅:“黑客”)实际上主要与协作开发模型相关。正如 Stallman 在您引用的“为什么开源错失了自由软件的重点”中所提到的那样。至少在 2014 年之前是这样,当时他开始试图说服人们,拥有公共存储库是“自由软件”文化的一部分(“大教堂与集市”否认了这一理论)。

我认为拥有两个具有不同含义的不同术语很方便,可以最好地描述不重叠的情况。存在未在公共存储库上发布的自由软件;存在未包含 4 项自由许可分发的开源软件。

我认为这两个术语应该合并为一个短语,然后您可以使用“专有”划分来区分。因此,您将拥有开源软件或“专有”开源软件,“自由”部分应该删除。然后当您提到开源软件……有人会问“专有”还是不专有?一旦您将其指定为“非专有”,那么它应该自动归入“自由”阵营。这样您就不会有各种各样的定义在四处漂浮,人们会抓住他们 喜欢 的任何定义来定义已经存在很长时间的东西。而且这使得谈论它变得更容易……而无需深入探讨自由与开源的全部内容

总的来说,这篇文章提出的观点很有趣,但如果有什么我真的想评论的话,那就是第 2 点“每个术语都暗示了不同的潜在价值观”。与其说是“价值观”,我更喜欢使用“意识形态/信条/原则”这个术语。术语之间的差异很小,但我真的看不到“价值观”可以区分两者。此外,如果您只是了解自由软件和开源的历史,您就会自动意识到前者是实体父亲,后者是孩子。这就是我清楚地看到它们之间存在牢固关系的方式,而且我敢断言,如果没有实体父亲,孩子就不会存在,这就是结果。这里没有必要进行比较,因为我已经消除了这个因素。我希望我能够解释清楚自己,因为我知道我有点难以理解 :-)

简洁明了的澄清。虽然它们看起来非常相似,但我认为差异源于 Richard Stallman/GNU/FSF 和 Linus/OSI 提出的理念。https://goo.gl/Jch16u

值得思考的好主题,也是涵盖术语之间关键问题的良好开端。遗漏的一个关键点是:这些术语的常用定义是什么?

虽然定义单词可能会变成哲学难题,但有两个组织被广泛认为是这些术语的实际定义者,指出这一点很有用。我认为正确的定义来自

- “自由软件”由 FSF 及其四项基本自由定义:https://gnu.ac.cn/philosophy/free-sw.en.html,其中阐述了术语“自由软件”含义的原则。他们还列出了符合自由软件条件的许可证列表:https://gnu.ac.cn/licenses/license-list.html

- “开源”软件由 OSI 及其开源定义的十个要点定义:https://open-source.org.cn/osd-annotated 他们还在此处列出了符合“开源”条件的许可证列表:https://open-source.org.cn/licenses

我们可以各自辩论我们个人对自由与开源的含义,或者特定社区倾向于使用什么。但更大的生态系统——以及世界——都使用 FSF 和 OSI 的定义,因此任何讨论都应该从那里开始。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.