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

自由软件、开源软件、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 是 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(未验证)

我不确定您是如何理解字面意义上的自由软件这个概念的。但是,自由软件不一定意味着它是开源的说法是完全不准确的。只需阅读 https://gnu.ac.cn/philosophy/free-sw.en.html 这 4 个基本自由,您就会意识到为什么。 также 回复您后来的回应,您说您不同意,这不是关于同意不同意,我们在这里谈论的是不可评论的事实。

回复 作者 Greg P

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

这是一篇精彩的文章!我是一名兼职副教授,教授 CSCI 开源软件的可用性,您的文章*完全*涵盖了我们在第一周的内容:什么是“自由软件”和什么是“开源软件”。

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

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

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

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

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

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

回复 作者 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.