共享、免费与公共:开源的真正定义

如果您认为开源与共享软件、免费软件和公共领域同义,那么您并不孤单。
191 位读者喜欢这篇文章。
Person in a field of dandelions

Opensource.com

当您听到“开源”这个术语时,您是否认为它与共享软件、免费软件或公共领域等术语是同义词? 如果是这样,您并不孤单。 许多人,无论是在技术行业内外,都认为这些术语是相同的。 本文阐述了这些术语的不同之处,以及开源如何成为一种变革性的许可和开发模型。 也许探索这些差异的最好方法是分享我在上述模型下提供的软件方面的经验。

共享软件和免费软件

我的计算机程序员生涯始于 1982 年在我的 Apple II Plus 上用 BASIC 编写代码。 我记得去家乡的当地电脑商店,发现装在塑料袋里的软盘,里面装着软件游戏和实用程序,价格似乎非常高。 请记住,这是从一个中学生的角度来看的。

然而,有些软件可以免费或以最低的价格获得; 这被称为共享软件或免费软件,具体取决于具体的许可模式。 在共享软件模式下,您只能使用该软件一段时间,并且/或者如果您觉得它有用,那么就会要求您向该软件的作者寄一张支票。

然而,一些共享软件实际上鼓励您也复制一份并将其赠送给您的朋友。 这种模式通常被称为免费软件。 也就是说,共享软件和免费软件之间的确切定义和差异有点模糊,因此通常最容易将两者都简单地称为“共享软件”。 我不能肯定地说,但我怀疑我是否曾经为使用他们的共享软件向任何软件作者提供过资金,主要是因为我十几岁的时候没有钱,但我确实很喜欢使用这些软件程序,并且一路学到了很多关于计算机的知识。

回顾过去,我现在意识到,如果该软件是在开源许可条款而不是共享软件条款下提供的,那么作为一名崭露头角的程序员,我本可以在我的成长过程中学到和完成更多的事情。 这是因为源代码(即软件的人类可读形式)几乎永远不会随共享软件一起提供。 共享软件还包含禁止接收者尝试公开源代码的许可限制。 如果无法访问源代码,则很难了解软件的实际工作方式,从而很难扩展或更改其功能。 这使得最终用户完全依赖于原始共享软件作者进行任何更改或改进。

使用共享软件模式,实际上不可能让任何开发者社区利用代码并围绕代码进一步创新。 对于重新分发和商业用途也可能存在进一步的限制。 尽管共享软件在价格方面可能是免费的(至少最初是免费的),但*它在自由方面并不是免费的*,并且不允许您通过探索代码的内部工作原理来学习和创新。

这让我想到了一个大问题:*这与开源软件有何不同?*

开源许可的基础知识

首先,我们需要了解“开源”是指一种*许可*和一种*软件开发模型*,它们都与共享软件显着不同。 在一种称为非复制左开源许可的开源形式下,用户被赋予了关键的自由,例如对访问源代码没有限制; 出售、使用或赠送该软件用于任何目的; 或修改软件。

这种形式的许可证也不要求支付任何费用或版税才能使用。 这种许可模式的一个惊人的结果是,它能够使无数软件开发人员协作对代码进行新的和有用的更改和创新,因为该许可证非常宽松,不需要就使用进行谈判。 尽管从技术上讲,在这种许可下不需要提供源代码,但几乎总是可以供所有人查看、学习、修改和分发给他人。

非复制左开源许可的另一方面是,此类软件的任何接收者都可以添加其他许可限制。 这意味着最初在此类许可下许可代码的作者不能保证接收者可能不会在更严格的条款下进一步许可给其他人。 例如

让我们假设一位作者 Noah 编写了一些软件,并根据非复制左开源许可将其分发给接收者 Aviva。 然后,Aviva 修改并改进了 Noah 的软件,根据非复制左开源许可条款,她有权这样做。 然后,Aviva 可以决定对她的软件的任何接收者添加进一步的限制,这些限制可能会限制其使用,例如可以在哪里或如何使用(例如,Aviva 可以添加一项限制,即该软件只能在加利福尼亚州的地理范围内使用,而不能在任何核电站中使用)。 即使她有权访问源代码,Aviva 也可以选择永远不向其他人发布修改后的源代码。

可悲的是,无数的专有软件公司以如上所述的方式使用非复制左开源许可软件。 事实上,共享软件程序可以通过添加共享软件类型的限制(例如,无法访问源代码或排除商业用途)来使用非复制左开源许可软件,从而将非复制左开源许可代码转换为共享软件许可模式。

幸运的是,许多使用非复制左开源许可软件的专有公司看到了发布源代码的好处。 这些组织通常通过软件存储库(如 GitHub)向他们的接收者或更广泛的开源社区提供他们修改后的源代码,从而继续延续开源模式,从而实现创新良性循环。 这并非完全出于善意(或者至少通常不是):这些公司希望鼓励社区创新和进一步改进,这可以使他们受益更多。

与此同时,许多专有公司选择不这样做,这完全在非复制左开源许可的条款范围内。

复制左许可的开源软件

1989 年,开发了一种名为 GNU 通用公共许可证(通常也称为 GPL 许可证)的新开源许可证,其目的是确保软件本质上应该是免费的(就像言论自由一样),并且这些自由必须始终存在,不像有时使用非复制左开源许可软件时发生的情况。 在版权法的一个独特应用中,GPL 使用版权法来确保永久的软件自由,只要遵循规则(稍后会详细介绍)。 这种对版权的独特使用称为复制**左**。

与非复制左开源软件一样,该许可证允许接收者不受限制地使用该软件,检查源代码,更改该软件,并将原始软件或修改后的软件进一步分发给其他接收者。 *与*非复制左开源许可证不同,复制左开源许可证绝对要求也向任何接收者提供相同的自由。 除非不遵守规则,否则它们永远不会被剥夺。

使复制左开源许可证具有可执行性并激励遵守的原因是对版权法的应用。 如果复制左代码的接收者之一不遵守许可证条款(例如,通过对软件的使用添加任何其他限制或不提供源代码),那么他们的许可证终止,并且他们成为版权侵权者,因为他们不再拥有使用该软件的合法许可。 通过这种方式,可以确保复制左软件的任何下游接收者的软件自由。

超越基础:其他软件许可模式

我之前提到过公共领域——虽然它通常与开源混为一谈,但这种模式有点不同。 公共领域意味着已采取措施确保不存在与该软件相关的适用版权,这种情况最常发生在软件版权到期或被作者放弃时。 (在许多国家/地区,放弃版权的机制尚不清楚,这就是为什么一些公共领域软件可能会提供获取开源类型许可证作为后备选项的原因。)使用公共领域软件不需要许可证; 这是否使其成为“开源”是争论的主题,尽管如果源代码可用,许多人会认为公共领域是开源的一种形式。

有趣的是,大量的开源项目都在某些功能上使用了公共领域的软件小模块。甚至有一些完整的程序声称属于公共领域,例如 SQLite,它实现了一个 SQL 数据库引擎,并被用于许多应用程序和设备。 此外,我们经常看到没有许可条款的软件。

许多人错误地认为这种未经许可的软件是开源的,属于公共领域,或者可以自由使用而不受限制。在包括美国在内的大多数国家/地区,软件在创建时就存在版权。这意味着未经许可(以许可证的形式)不得使用它,除非以某种方式放弃版权,使其进入公共领域。此一般规则存在一些例外,例如默示许可或合理使用的法律,但这些法律在如何应用于特定情况时非常复杂。 我不建议在打算使用开源许可条款时,提供没有许可条款的软件,因为这会导致混淆和潜在的误用。

开源软件的优势

正如我之前所说,开源能够实现高效的软件开发模型,并具有巨大的创新能力。但这究竟意味着什么?

开源许可模式的优势之一是大大减少了围绕创新的摩擦,特别是原始创建者之外的其他用户所做的创新。这种摩擦受到限制,因为使用开源代码通常不需要协商许可条款,从而大大简化并降低了使用的任何成本负担。反过来,这创造了一种开源生态系统,鼓励快速修改和组合现有技术以形成新的事物。这些更改通常会被提供回这个开源生态系统,从而形成一个创新循环。

从您的烤面包机到前往火星的航天器,运行着无数的软件程序,这些程序都是将各种程序组合在一起的直接结果……这一切都由开源开发模型实现。

接下来阅读
标签
Picture of Jeffrey Robert Kaufman
Jeffrey R. Kaufman 是 Red Hat, Inc. 的高级商业顾问(开源法律团队),Red Hat, Inc. 是世界领先的开源软件解决方案提供商。 Jeffrey 还在北卡罗来纳大学担任法律学兼职教授。

2 条评论

你还记得 Apple II 时代的 FredWriter 吗? 我过去常常复制它并将 5.25 英寸软盘分发给每个学生。 该程序在一面,数据在另一面。

议会和国会在 1970 年代给予软件版权垄断是一个巨大的错误,并且将现代开源推迟了 20 年(从 1970 年代后期到 1990 年代后期)。 相反,在 1970 年代和 80 年代使用互联网,使用软盘来分发源代码。

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