你是否曾经使用过可以免费更改并与他人分享的软件?这是由所谓的“开放源码许可证”实现的但是,你有没有想过这是如何工作的,为什么它很重要?

开源许可让开发人员可以与全世界分享他们的源代码,同时仍然保护他们的知识产权,并控制如何使用它。它还可以帮助每个人理解使用和更改软件的规则。这些许可证是开源世界的重要组成部分,理解它们对于开源软件制造商和使用者同样重要。

那么,什么是开源许可证,它对你有什么影响?有哪些类型,您可能面临哪些潜在的开放源码许可风险?

什么是开源许可证?

开源软件许可证的定义是,这些法律协议决定了用户可以访问和修改开源软件代码的规则。这些许可证通常允许用户自由地使用、更改和分发软件,只要他们遵循许可证中列出的某些条件。

开源软件许可证提供了一个法律框架,保护软件开发者和用户的权利。简单地说,它们就像使用和共享自由软件的规则。

开源定义

为了确保开源软件许可的明确性,让我们回过头来简要描述一下开源的一般含义。

开源和专有软件之间的主要区别。有了专有软件,只有拥有它的公司才能访问源代码,并能看到和修改它。它受到专有软件许可证的保护。相反,开源代码可以公开访问,并与软件一起分发。它是提供给每个人,可以修改和改进的任何人与必要的技能。开源背后的理念是促进软件开发中的协作和创新。

专有软件由个人或公司拥有。不同类型的软件许可证限制其被他人自由使用、分发或修改。专有代码通常不对公众开放,用户通常需要同意一个许可协议,该协议对软件的使用设置了限制。这种类型的软件通常商业销售,只能根据所有者设定的具体条款使用。

开源和公共领域Public Domain的区别是什么?

在进一步深入研究开源许可之前,让我们再澄清一个区别——开源和公共领域之间的区别。这两个概念与软件和其他作品的发布和使用有关。

开放源码是指拥有开放源码许可证的软件或其他作品,允许免费使用、修改和分发。许可证为使用和分发设置了特定的规则,但是鼓励协作和共享工作。

公共领域包括不受版权限制的作品,可以不受限制地使用、修改和发行。这可能发生在版权过期或创作者选择放弃他们对作品的权利时。

两者之间的主要区别在于,开放源码拥有设置使用规则的许可,而公共领域则完全没有限制。这两个概念都促进了共享和协作,但是开源为它提供了一个更加结构化的框架。

开源许可类别: Copyleft and Permissive

根据许可对用户的义务和限制,开放源码许可主要有两类: 版权许可和宽松许可。

Copyleft 定义

这一类别的开源软件许可允许免费发行和修改作品,只要任何衍生作品也是在相同的许可下获得许可。它的目的是确保工作保持开放和免费供将来使用、修改和发布。换句话说,您的修改必须保持同样的开放性,并且对所有具有初始版本提供的相同权限和特权的人都可以访问。

这些开源软件许可进一步分为:

1.Strong copyleft licenses

如果源代码受到强版权许可的保护,那么衍生软件也需要在该许可下公开可用。这包括软件中的所有链接库和组件。例如,如果有人根据 GPL 许可证修改和分发软件,他们还必须使源代码可用,并根据相同的 GPL 许可证授权修改。因此,如果您计划开发软件并将其作为专有产品提供,那么应该避免使用这些开源许可证。

2. Weak copyleft licenses

弱版权许可证的要求与强版权许可证的要求相似,但它们适用于有限的一组代码。这个开源许可证只要求原始或修改过的作品的源代码公开可用,而与作品一起使用的其余代码不必在同一许可证下发布。

Permissive定义

许可开放源码许可是一种开放源码许可,允许在使用和分发开源软件方面有更大的灵活性。许可证,比如 MIT 许可证和 BSD 许可证,对软件的使用、修改和发布施加了最小的限制。

使用许可证,用户可以自由地将软件用于任何目的,包括商业目的,并且不需要发布源代码或者根据相同的条款对其修改进行许可。这使软件的使用和分发更具灵活性,但也可能导致创建封闭的专有衍生作品。

允许许可证往往受到那些希望在自己的开源软件中使用专有软件作为组件的企业和个人的青睐,因为它们为在自己的项目中使用软件提供了更大的自由度。

开源许可比较

开源许可数量众多,而这正是开放源代码促进会(OSI)发挥关键作用的地方。它是一个非营利组织,通过开发和执行开源许可证来促进和保护开源软件。

这些是一些最受欢迎的 OSI 批准的开源许可证。

Permissive Open-Source Licenses

MIT License

由麻省理工学院创建的MIT许可证是最受欢迎的许可证之一,也是最宽松的许可证之一。与许多其他开放源码许可证相比,这个许可证非常简短明了。它声明源代码可以以任何方式使用,只需要保留版权和许可通知。然而,它没有明确授予专利权,这就是为什么有些人宁愿避免它。MIT许可证由Babel、NET 和 Rails等使用,来列举一些著名的开源软件解决方案。

BSD License

BSD 许可授予开发者类似的权利,在没有源代码和不同的许可条款下发布作品,但要求包括版权声明和许可文本的软件副本。有几个 BSD 许可证版本的 BSD 3-条款许可证是最流行的。它包含一个非声明条款,禁止开发人员使用原创者的名称来背书他们的修改。

Apache License

Apache 许可证是由 Apache软件基金会(ASF)发布的。作为一个许可证,它给予开发人员在任何首选许可证下分发工作的灵活性,只要他们认可最初的许可证并仔细记录对其所做的所有修改。您可以选择保留您的一些材料作为一个封闭的来源,并可以获得许可证,允许您货币化他们,甚至获得专利。一些著名的受 Apache 许可保护的软件解决方案包含 Kubernetes、 PDF.js 和 Swift。

The Unlicense

这是一个 OSI 批准的,公共领域等同的许可证,没有任何条件。开发人员可以完全自由地以任何方式使用源代码,而不必承担任何义务。这个许可协议是由那些只是想让他们的软件公开可用的人选择的,他们不需要制定任何关于如何使用它的规则,但是出于法律原因必须包含一个许可协议。

Copyleft Open-Source Licenses

GNU General Public License (GPL)

GNU GPL 是最早的开源软件许可证之一,也是最流行的版权许可证之一。它属于强有力的版权许可,因为它要求用户共享他们对软件所做的任何修改,并将修改的源代码提供给公众。即使 GPL 代码只占新软件的一小部分,整个新软件的源代码也必须在相同的 GPL 许可下可用。

有几个版本的 GPL 许可证存在差异,这使得它们或多或少地适用并与其他许可证兼容。所有的细节都可以在 GNU 的网站上找到。例如,GIMP 和 Bash 使用此许可证类型。

GNU LGPL (Lesser General Public License)

这个 GNU宽通用公共许可证(lgPL)是一个版权许可,类似于GPL,但是允许用户将软件链接到另一个软件,而不需要他们共享专有软件的源代码。因此,它介于强copyleft和弱copyleft之间。

Mozilla Public License (MPL)

作为一个软弱的版权许可,Mozilla公共许可证声称,如果一个衍生作品修改了 MPL 授权的代码,它也必须获得相同的授权。但是,如果 MPL 代码保存在单独的文件中,没有任何修改,派生工作可以与非 MPL 代码结合起来创建一个更大的工作,只有 MPL 部分的代码必须与软件一起发布。Servo、 Synching 和 TimelineJS3都是该许可证的用户。

Eclipse Public License (EPL)

EPL 也是一个软弱的版权许可证。如果您选择修改一个 EPL 组件并将其作为程序源代码的一部分发布,那么就有必要公开修改后的代码。另一方面,如果您只提供用于分发的目标代码,那么您必须清楚地表明,收件人能够向您请求原始源代码,并说明如何提出此类请求。

如何为你的代码选择最好的开源许可?

所以你已经准备好与全世界分享你最新的软件创造,但是不确定选择哪个开源许可?有这么多类型的开放源码许可证,而且几乎都是以不那么容易理解的方式编写的,因此选择正确的许可证可能是一件棘手的事情。

下面是一些可以帮助你做出决定的想法和方面:

  1. 如果您计划为开源社区做贡献,最简单的方法是选择社区使用的许可证。这样做,您贡献给社区的项目将非常适合,因为并非所有的许可证都彼此兼容。另外,一些社区将使用限制在特定的许可证上。例如,WordPress 是在 GPLv2下发布的,如果你想为 WordPress 社区做贡献,这是你唯一可以使用的许可证。
  2. 如果你想让你的代码尽可能的可重用和可共享,为了保证互惠性,你应该选择 GNUGPLv3。这样,除了分发封闭源代码版本之外,其他人可以对代码做几乎任何他们想做的事情。
  3. 如果你想让它变得简单和宽容,让人们可以随心所欲地处理你的代码,包括以专有的方式发布派生的作品,你应该选择MIT许可证。

如何检测组件中的开源许可证

UniSCA支持自动化开源许可证合规性检测,通过对开源许可证的知识产权风险、兼容性冲突等维度进行评估,标识风险等级、涉及组件与影响项目。帮助用户了解项目中的开源许可证及相关合规要求,及时发现许可证风险。

试用链接:CodeAnt

UniSCA

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐