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

自由软件、开源软件、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 试图强制执行软件的自由。 根据 RMS 定义的四项自由,根据其发布的任何代码都应始终可用。 任何更少都是完全不可接受的。

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

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

Stallman 尽一切努力确保以 libre/free 软件形式发布的代码即使有人更改、修改或分发代码也将保持如此。 这样,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 的定义,因此任何讨论都应该从那里开始。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 国际许可协议获得许可。
© . All rights reserved.