开源的定义_共享与自由与公共:开源的真正定义

开源的定义

当您听到“开源”一词时,您认为这与诸如共享软件,免费软件或公共领域之类的术语同义吗? 如果是这样,你并不是孤独的。 在技​​术行业内外的许多人都认为这些术语是相同的。 本文说明了这些术语的不同之处以及开源是一种变革性的许可和开发模型。 探索差异的最好方法可能是与我在上述一种模型下提供的软件分享我的经验。

共享软件和免费软件

早在1982年,当我开始在Apple II Plus上用BASIC编写代码时,我就开始从事计算机程序员的工作。我回想起去家乡的本地计算机商店,并在装有软件游戏和实用程序的塑料袋中找到软盘,看似什么。高昂的价格。 请记住,这是从中学生的角度来看的。

但是,有一些软件可以免费或以最低价格获得。 根据确切的许可模式,这被称为共享软件或免费软件。 在共享软件模型下,您只能在一定时间内使用该软件,和/或如果发现有用,则要求您将支票发送给该软件的作者。

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

使用共享软件模型,几乎不可能使任何开发人员社区都可以利用和进一步围绕代码进行创新。 再分配和商业使用方面也可能存在进一步的限制。 尽管共享软件可能在价格方面是免费的(至少在最初是免费的 ), 但它在自由方面并不是免费的,并且不允许您通过探索代码的内部原理进行学习和创新。

这就引出了一个大问题: 这与开源软件有何不同?

开源许可的基础

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

这种形式的许可证也不需要支付任何费用或使用费。 这种许可模式的一个惊人结果是它具有独特的能力,因为许可是高度允许的,不需要谈判就可以使无数软件开发人员就代码的新的,有用的更改和创新进行协作。 尽管从技术上讲,不需要在这种许可下提供源代码,但几乎所有人都可以使用它来查看,学习,修改和分发给他人。

非copyleft开源许可的另一方面是,此类软件的任何接收者都可以添加其他许可限制。 这意味着以这种许可形式对代码进行许可的最初作者不能保证接收者可能不会根据限制性更强的条款进一步许可他人。 例如:

让我们假设作者Noah编写了一些软件,并根据非copyleft开源许可将其分发给了收件人Aviva。 然后,Aviva修改并改进了Noah的软件,她有权根据非Copyleft开源许可条款使用该软件。 然后,Aviva可以决定对可能限制其使用的软件的任何接收者添加进一步的限制,例如在何处或如何使用该软件(例如,Aviva可以增加一项限制,规定该软件只能在以下地区使用:加利福尼亚,并且从未在任何核电厂中)。 即使Aviva可以访问源代码,也可以选择永远不将修改后的源代码发布给他人。

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

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

同时,许多专有公司不选择这样做,这完全符合非copyleft开源许可证的条款。

Copyleft许可的开源软件

1989年,开发了一个新的开源许可证,称为GNU通用公共许可证,也称为GPL许可证,其目的是确保软件固有地是自由的(如言论自由),并且这些自由必须始终存在,这与非copyleft开源许可软件有时会发生的情况不同。 在版权法的独特适用中,GPL使用版权法来确保永久性的软件自由,只要遵守这些规则(稍后会再介绍)。 这种独特的使用版权的被称为拷贝走了

与非copyleft开源软件一样,此许可证允许收件人不受限制地使用该软件,检查源代码,更改软件,以及将原始或经修改的软件进一步分发给其他收件人。 非copyleft开源许可证不同,copyleft开源许可证绝对要求所有接收者也具有这些相同的自由。 除非不遵守规则,否则绝不能将它们带走。

使Copyleft开源许可证可强制执行并促使人们遵守法规的原因是版权法的适用。 如果copyleft代码的接收者之一不遵守许可条款(例如,通过对软件使用添加任何其他限制或不提供源代码),则其许可将终止,并且由于他们不再具有使用该软件的法律许可。 这样,可以为该copyleft软件的任何下游接收者确保软件自由。

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

我在前面提到了公共领域,尽管它通常与开放源代码混为一谈,但该模型有所不同。 公共领域是指已采取步骤以查看与该软件没有任何适用的版权,这通常发生在软件版权到期或被作者拒绝时。 (在许多国家/地区,版权保护机制尚不明确,这就是为什么某些公共领域软件可以提供一种选择来获得开放源代码型许可证作为后备的原因。)使用公共领域软件不需要许可证; 是否使它成为“开放源代码”是很多争论的主题,尽管如果源代码可用,许多人会认为公共领域是开放源代码的一种形式。

有趣的是,有许多开源项目利用公共领域软件的小模块来实现某些功能。 甚至还有声称是在公共领域中的整个程序,例如SQLite,它实现了SQL数据库引擎并在许多应用程序和设备中使用。 看到没有许可条款的软件也是很常见的。

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

开源软件的好处

就像我之前说的那样,开放源代码可以实现高效的软件开发模型,并具有巨大的创新能力。 但这到底是什么意思?

开源许可模式的好处之一是大大减少了创新方面的摩擦,尤其是原始用户以外的其他用户所进行的创新。 这种摩擦是有限的,因为使用开放源代码通常不需要协商许可条款,从而大大简化和降低了使用成本。 反过来,这创建了一种开源生态系统,鼓励快速修改和组合现有技术以形成新的事物。 通常将这些更改提供回此开源生态系统中,从而创建创新周期。

有无数种软件程序可以运行从您的烤面包机到火星飞行器的所有程序,这是这种轻松地将各种程序组合在一起的能力的直接结果……所有这些程序都由开源开发模型支持。

翻译自: https://opensource.com/article/19/10/shareware-vs-open-source

开源的定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值