当你听到“允许”这个词时,你可能会想到一些没有很多规则或限制的东西。在开放源码软件许可方面,这与现实并不遥远。(许可许可证是开放源代码许可证的两大类别之一;copyleft许可证对许可代码的使用有更严格的要求,是另一类。)
通常,许可证下的软件可以修改、复制、添加、删除等,而无需共享这些更新。开发人员可以使用许可的软件,通过更改或添加使其成为自己的软件,将其新版本保留给自己,或者如果愿意,可以共享。这是一个主要的功能,如果你想创建专有软件,你可以销售和保密的竞争对手-和主要原因之一,为什么许可证是受欢迎的。
与使用许可许可代码相关的这些自由与copyleft许可证的更严格要求形成对比,后者要求许可软件的任何衍生作品只能在同一copyleft许可证下分发。这意味着,任何修改或添加原始软件的开发人员在分发包含copyleft许可代码的二进制文件时,通常都需要共享这些更改的源代码。
在本博客中,我们将仔细了解许可许可证的所有内容,包括它们与copyleft许可证的比较、它们的使用案例、历史以及它们在开源软件社区中的角色。
许可证的历史
第一个许可证通常被认为是之前的BSD许可证,它是第一个“官方”BSD许可证(今天称为4条款BSD许可证)的前身。这种“原始BSD”许可证出现在20世纪80年代末。大约十年前,加州大学伯克利分校的计算机科学家开始研究一种基于Unix的操作系统,后来被称为BSD(伯克利软件发行版)操作系统。随着其他机构开始使用该操作系统,一些开发人员开始修改和添加源代码,然后要求将这些更改纳入下一个版本。
1989年,伯克利的Network Release 1包含了BSD许可证的最早前身,基本上表示代码可以重用或修改。毕竟,事情已经发生了。一年后,4条款BSD许可证正式发布。从那时起,3条款、2条款和0条款许可证加入了BSD家族。如今,三条款版本最受欢迎。
MIT许可证是目前使用最多的OSS许可证,与第一个BSD许可证的开发时间大致相同。然而,它的起源有点模糊。在Twitter上回答一个问题时,参与创建原始许可证的两名计算机科学家吉姆·盖蒂斯和基思·帕卡德给出了他们记忆中的体验。两人都帮助麻省理工学院开发了X Windows系统。
据Packard称,1985年X版本6发布时,他们为其添加了一个许可证。事实证明,在这个许可证下分发软件是一个巨大的挑战,这促使Getty打趣说,他们应该干脆放弃它。然而,将其公之于众是行不通的,因为那样IBM就不会使用它了。因此,他们咨询了麻省理工学院的律师,制定了一种语言,表明任何人都可以使用和修改该软件。
随后的版本包含类似的措辞,该许可证被称为X Consortium许可证。事实上,当开放源码倡议(OSI)在1999年分享其第一批经批准的OSS许可证时,它指出MIT许可证有时被称为X Consortium许可证。然而,X Consortium许可证和1998年发布的麻省理工学院许可证的“官方”版本并不是同一个许可证,而是用不同的语言表达了类似的观点。
尽管如此,现在的麻省理工学院许可证的前身似乎已经存在了近十年,而现在的版本才被编写出来。如果是真的,这将使其成为最早的开放源码软件许可证之一。
宽容许可与版权许可
开源软件许可证可以分为两类:宽容许可和版权(Copyleft )许可。两者之间的主要区别涉及许可证合规性条件以及对代码的任何更改必须如何“公开”。
一般来说,许可证只要求用户在许可软件的任何再分配中包括两件事:原始版权声明和许可证文本的副本。Copyleft许可证也有这种情况。然而,它们还要求用户向二进制文件的所有接收者提供任何修改的源代码,并将这些修改放在同一个许可证下。因此,所有代码的重写最终都与原始代码一样“开放”。
需要注意的一点是:许可证虽然容易遵守,但并不等同于将软件放入公共领域。虽然存在与公共域等效的OSS许可证(例如BSD 0-clause许可证或Creative Commons 0),但许可证不属于这一类。一般来说,在公共领域的作品没有使用要求,而许可证确实有规定,无论多么微小。
许可使用案例
为特定软件项目选择正确的许可证取决于许多因素,例如您希望其他开发人员如何与您的代码交互,以及您对代码的更改是如何开放(双关语)的,使其成为专有/封闭源代码。
不过,在一些一般情况下,许可证可能是最合适的选择。例如,如果您:
- 希望让代码变得简单,并吸引其他人(包括大型商业企业)使用您的代码。毕竟,如果一家大牌科技公司不能保留自己的专有版本,他们可能不想修改你的软件。
- 需要你的项目与GPL许可代码兼容。例如,BSD或MIT许可证与GNU GPL许可证系列的每个成员都兼容。
- 正在社区内创建一个项目,该项目倾向于使用特定的许可证。在这种情况下,同龄人的压力是一件好事。例如,如果其他人都在使用麻省理工学院的许可证,你可能也应该这样做。
- 不想花费时间或资源来管理复杂的许可证合规性问题。有了许可证,开源用户就不必担心源代码泄露的要求
如果您仍在试图决定使用哪个许可证,本指南和其他OSS贡献者一样可以提供帮助。
宽容许可证的类型
- 与copyleft许可证(分为“强”和“弱”两种)不同,许可许可证并没有整齐地归类。然而,最受欢迎的选择各有其独特之处。例如,麻省理工学院的许可证以其简洁、灵活和易于使用而闻名。基本上,它规定用户可以对代码做任何他们想做的事情,包括复制、修改、添加、分发和销售代码,只要他们包含许可证文本和原始版权声明。
- BSD 3条款许可证在功能上与MIT许可证非常相似。另一个条件是,未经明确书面许可,BSD 3许可代码的用户不得使用项目或其贡献者的名称营销或推广其衍生作品。对于那些不希望自己的软件在没有信用的情况下被使用的OSS开发者来说,这个警告让它成为一个有吸引力的选择。但是,可以说,没有一种许可首先授予任何此类权利——这更像是商标许可,而不是版权许可。
- 在许可证生态系统中,Apache许可证2.0有点突出。它包括通常的规定,但也要求用户说明对软件的重大更改。不需要发布修改的源代码;仅包括任何修改通知就足以遵守许可条款。此外,Apache License 2.0还包括明确授予专利权和防御性终止条款,这为许可方和被许可方提供了一些法律保护。
OSS社区中的宽容许可证
许可证在OSS社区中越来越流行。超过一半的开源项目使用MIT许可证或Apache许可证2.0,大约三分之二的项目使用某种类型的许可证。
许多备受瞩目的OSS项目正在使用许可证,这增加了这些许可证受到的关注。例如,Ruby on Rails、jQuery和Angular使用MIT许可证。而Apache2.0是Kubernetes、TensorFlow和Swift的首选许可证。事实上,所有Apache基金会项目(其中一些都被广泛使用)是在Apache 2许可证下进行的。
随着使用量如此强劲而稳定的增长,许可证似乎并不是一个暂时的趋势。最有可能的是,这些许可证只会继续在OSS社区中发挥越来越大的作用。
最新内容
- 14 hours ago
- 16 hours 23 minutes ago
- 16 hours ago
- 3 days 7 hours ago
- 3 days 15 hours ago
- 3 days 15 hours ago
- 3 days 16 hours ago
- 3 days 16 hours ago
- 1 week 1 day ago
- 1 week 1 day ago