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

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

Opensource.com。 CC BY-SA 4.0。

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

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

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

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

“开源”侧重于这些许可证实现的实际结果:在软件开发上进行出人意料的有效协作。 自由软件先出现。 后来,人们逐渐意识到自由软件正在导致卓越的协作动态。 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 甚至确保以自由/自由软件形式发布的代码即使有人更改、修改或分发代码,也将保持如此。 这样,自由代码几乎永远不会变成专有的。

回复 作者: Robert McConnell (未验证)

嗯,您是否意识到 Linux,开源项目的巅峰之作,是在 GPL 2 下获得许可的,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.