bsd开源许可
如果您今天是软件开发人员,则知道如何使用开源软件,但是您知道开源许可的方式和原因是什么? 掌握一些背景知识可以帮助您了解许可证的工作方式和原因。
开源许可的由来
如今,在Microsoft Windows和专有软件时代成长起来的技术人员可能会相信,开放源代码许可是1990年代开始的最近趋势。 尽管开放源代码许可的流行在过去的二十年中猛增,但实际上,开放源代码是软件许可的原始模型,而专有许可则随后出现。
实际上,这两种软件许可模式(开放源代码和专有模式)的起源都来自一个共同的来源:Unix操作系统。 Unix由AT&T贝尔实验室在1960年代末和1970年代初开发,并且是第一个通用操作系统。 当时,AT&T的市场地位如此重要,以至于美国司法部发布了一项同意令,禁止AT&T从事电话服务领域以外的商业活动,电话服务是AT&T的主要业务。 由于同意书的规定,AT&T不能将Unix用作商业产品,因此Bell Labs按照允许其修改和重新分发的条款以源代码形式放弃了Unix。 这导致了Unix在1970年代和1980年代在计算机科学家中的广泛使用和普及。
1983年美国司法部解除同意令后,AT&T着重将Unix作为专有产品商业化,并采用了限制性更强的许可条款,允许Unix仅以目标代码格式重新分发。 同时,在1980年代,微型计算机(PC)的出现导致了软件的标准化。 反过来,这种标准化鼓励公司以仅二进制的形式分发其软件,因为用户对源代码进行调查或故障排除的需求更少。 因此,专有许可成为许可软件的主导模型。
随着Linux操作系统的发展,对开放源代码许可的兴趣在1990年代重新出现。 自从UNIX私有化以来,对作为UNIX的免费替代品的操作系统的需求激增。 为了有用,该操作系统既需要操作系统内核,也需要安装,运行和开发程序所需的工具。 芬兰的少年Linus Torvalds作为学校项目开发了第一个Linux内核。 同时,已经组建了GNU项目来开发这些工具,并且当这两个部分结合在一起时,可以使用UNIX的免费替代品。 组合的操作系统(通常称为Linux)是在GNU通用公共许可证(GPL)下发布的,GPL是由GNU项目的 Richard Stallman创建的许可模型。 GPL授予接收者不受限制的重新分发软件的权利,条件是不能对源代码保密。 随着Linux的普及和成千上万的贡献者以及数十亿用户的使用,该行业学会了遵循并采用GPL的条款。 到1990年代后期,GPL和开放源代码许可范式已获得更广泛的关注和业界认可。 在2010年代,它对技术行业的重要性几乎超过了专有许可。
开源许可证的类型
如今,Stallman率先推出的GPL许可证是其第三版( GNU GPLv3 ),并且只是几十种开源许可证中的一种。 开放源代码计划 ( Open Source Initiative )是一家成立于1998年的组织,旨在推广开放源代码软件并规范该术语的使用,现已批准了80多个开放源代码许可证 。 这80个许可证通常分为两类之一:许可许可证和copyleft许可证。
许可许可证很简单,并且是最基本的开源许可证类型:只要您遵守通知要求,它就可以使您对软件进行任何操作。 许可许可证按原样提供软件,没有任何保证。 因此,许可许可证可以概括如下:
- 用代码做什么
- 使用后果自负
- 确认作者/贡献者
Copyleft许可证将要求添加到许可许可证中。 除了上面列出的要求之外,copyleft许可证还要求:
- 如果分发二进制文件,则必须使这些二进制文件的源代码可用
- 源代码必须在获得代码的相同copyleft条款下可用。
- 您不能对被许可人的许可使用施加其他限制
下表根据许可和copyleft框架对流行的开源许可证进行了分类。 左版权也按强度从高到低的顺序从高到低依次列出。 “强度”是指周围软件可能需要遵循相同的copyleft要求的程度。 例如,GPL很强,因为它要求任何包含GPL代码的程序都必须仅包含GPL代码。 LGPL之所以较弱,是因为它允许动态链接到其他专有代码,而不必将该链接的代码置于相同的GPL要求下。 最弱的Copyleft许可证EPL和MPL允许与其他代码进行任何形式的集成,只要EPL或MPL代码位于其自己的文件中即可。
Permissive Licenses | Copyleft许可 |
|
|
热门开源问题
当我为客户提供开源许可建议时,他们会问四个最常见的问题:
- 什么是“发行”?
- 开源许可证如何影响软件的专利权?
- 什么是“通知”要求,我如何遵守?
- 什么是“衍生作品”,并且与此相关,将GPL代码合并到我的专有代码中是否会使专有代码获得GPL许可?
这些问题的简短答案如下:
- 什么是“发行”? 简单来说,分发是指将受版权保护的作品(例如软件)的副本从一个法人转移到另一个法人。 分发的概念很重要,因为仅在分发软件时才触发开源许可证的要求。 因此,不分发软件的人不能违反开源许可证的条款。 而且,由于“法人”包括一家公司,因此,如果仅在同一公司的员工之间转移软件,则不会进行分配,因此也没有违反许可证条款的风险。
如今,对于通过Internet,云或SaaS模型部署软件的企业来说,分发可能是一个棘手的问题。 允许用户通过Internet与软件应用程序进行交互是否符合分发条件? 对于大多数开源许可证,答案是否定的。 实际上,GPLv3使用术语“传送”而不是“分发”,以明确说明SaaS的使用不会触发任何许可要求。 但是Affero GPL(AGPL)许可是一个例外,它采用了不同的方法。 一旦软件被修改并可以通过网络使用和交互,AGPL的要求(与GPL相同)就会被触发。
- 开源许可证如何影响软件的专利权? 一些开放源代码许可(例如Apache 2,GPLv3)包括明确的专利许可条款,该条款授予接受者对涉及该软件产品的任何专利的许可。 其他开放源代码许可(例如BSD,MIT,GPLv2)都是专利许可的一部分。 但是,对于这些许可,法院可以使用“隐含许可”原则来确定接受者仍获得许可,并且免受使用许可软件产品引起的任何专利侵权指控的影响。 这样一来,法院就可以防止许可人“咬两口苹果”,并使用其许可的软件起诉专利侵权。 总之,除非另有明确说明,否则开源许可会限制作者起诉涉嫌专利侵权的服从许可接收人的能力。
- 什么是“通知”要求,我如何遵守? 通知要求意味着开放源代码软件的分发者必须通知接收者,已交付给接收者的软件中包含某些在指定许可下可用的开放源代码软件。 每个开源许可证都有自己的特定通知要求。 通常,这些要求包括提供适用许可证的完整副本,并确认作者和贡献者。 最佳实践是预先交付许可证涵盖的源代码,因为许可证的完整副本通常作为文本文件包含在源代码包中。 另一个最佳实践是遵循GPL的通知要求,因为它们被认为是最严格的要求之一。 因此,遵守GPL的通知要求通常可以确保符合其他适用的开源许可证的通知要求。
- 衍生作品和病毒性GPL的神话:客户普遍担心的是,将根据GPL许可的代码(或类似的Copyleft许可)合并到其专有代码中,该专有代码将被“感染”或“污染”并获得GPL许可(即,专有代码有效地转换为GPL代码)或被强制进入公共领域。 这种担忧导致一些人将GPL视为病毒,并阻止他们使用GPL代码,因为他们担心任何包含GPL代码的衍生作品也将获得GPL的许可。
这些担忧在很大程度上是没有根据的。 确实,根据GPL,单个程序中的所有代码都必须服从GPL或不服从GPL。 因此,如果开发人员将GPL代码与专有代码进行组合并重新分发该组合,则将违反GPL。 但是,此违规行为可能导致的最坏情况是,GPL代码的作者可以行使其权利主张侵犯版权的权利。 侵犯版权的补救措施是赔偿(金钱)或强制令(停止使用GPL代码)。 至关重要的是,版权法不支持任何补救措施,这种补救措施不会迫使违规的开发人员根据GPL许可其专有代码或将该代码发布到公共领域。 因此,将GPL代码与专有代码结合使用不会“感染”专有代码或将其转换为GPL代码。
要了解更多信息,请参加9月28日至30日在密苏里州圣路易斯举行的Strange Loop上参加Heather Meeker的演讲, 开源软件许可:每个技术人员需要知道的内容 。
翻译自: https://opensource.com/article/17/9/open-source-licensing
bsd开源许可