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

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

Opensource.com。CC BY-SA 4.0。

你使用“开源软件”还是“自由软件”?尽管自由软件许可证(四项自由)和 开源许可证(开源定义)有不同的规则,但从这两组规则中不明显的是

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

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

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

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

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

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

消除困惑

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

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

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

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

22 条评论

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

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

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

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

回复 by Greg P

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

回复 by Mobius (未验证)

我完全同意这一点。

另外,另一个资源将是 Richard Stallman 自己的页面
https://stallman.org/solidarity-economy.html

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

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

回复 by Mobius (未验证)

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

回复 by Greg P

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

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

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

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

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

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

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

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

回复 by Robert McConnell (未验证)

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

回复 by Mobius (未验证)

我不得不说,我不太同意每个术语都有不同的隐含价值。这些术语本身没有价值,但它们承载了我们作为实践者赋予它们的价值。与其关注使用的术语,我们更应该关注我们打算通过它传达什么:我们指的是开发模型还是理念?两者都有可能,使用任何一个术语都可以,人们可以互换使用它们。

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

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

回复 by Jonas Öberg (未验证)

开源仍然可以出售。例如,看看 StarOffice 或红帽 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 的定义,因此任何讨论都应从那里开始。

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