继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

聊聊开源许可证那些事儿

胡子哥哥
关注TA
已关注
手记 367
粉丝 79
获赞 377

开源软件(OSS)的兴起在今天非常重要。这是因为任何人都可以免费使用它,因此得到了广泛的使用。无论是小项目还是大公司,OSS都被广泛应用。

它还充当创建其他软件和其他产品基础的资源。不过,对开源软件(OSS)许可证的不了解或误解可能会带来麻烦。

一个开源许可定义了使用开源软件的条件和条款。理解这些许可对开发人员和用户来说至关重要,以避免出现意外。例如,

选择不当的许可证会限制项目的使用。

  • 错误使用开源许可证可能会导致法律问题和权利侵害。

    请注意,错误使用开源可能会导致安全漏洞和缺乏安全性。

在文章的最后,我们将深入了解什么是开源许可证,如何在开源软件中识别它,以及不同类型及其影响。

开源许可是什么?

开源许可是规定如何使用开源软件(OSS)的法律规则,这些规则通常称为条款。这些条款规定了软件的使用、修改、分发以及是否可以商业化。根据开放源代码促进会 (OSI) 的定义,开源许可必须符合开源标准。这些许可允许软件自由使用、修改和分发。

开发人员在开发或完成开源软件(OSS)后会附上一份许可。这份许可明确了使用条款。如果遵守这些条款,不仅保护了软件所有者的权利,还避免了用户可能遇到的法律问题。

有多种方式可以添加许可证。像 GitHub 和 GitLab 这样的平台支持开发人员为开源项目添加许可证。

如何辨别软件里的开源协议

用户可以在 GitHub 上按以下步骤查看软件许可:

  1. 前往 GitHub 上的 OSS 开源仓库。通常在根目录下可以找到许可证文件,文件名为 LICENSELICENSE.txt
    CHAOSS OSS 开源仓库

  2. 通常,你可以在仓库页面顶部,仓库名称的上方看到项目的许可证。它通常位于文件列表下方。
    CHAOSS OSS 教育项目仓库
开源许可证的分类

主要有两种开源许可证类别。

  • 宽松许可协议

  • Copyleft 许可证
宽松许可

宽松许可证有时被称为“随意使用”。这是因为它相比其他许可证,条款更为宽松。宽松许可证允许用户使用、修改和重新分发软件,用户无需公开这些修改,除非他们自愿选择这么做。

一种宽松的许可还允许商业用途。这意味着,不管软件是否被修改,你都可以将其包含在你的销售产品中。宽松许可的主要要求是需要在使用时添加版权声明,无论是个人还是商业用途。这确保了所有者的权利得到承认。

比如使用宽松许可的开源项目有MIT许可和Apache许可。

Copyleft 许可证

copyleft 许可也被称作“限制性许可证”。它比宽松许可更严格。与宽松许可一样,copyleft 许可证允许使用、修改和分发开放源代码软件(OSS)。然而,每一个修改都必须公开或无偿提供给其他用户。

在需要许可证的情况下,必须使用相同的 copyleft 许可证来对 copyleft 软件进行修改或创建衍生作品。例如,使用 copyleft 许可证的开源项目包括 GPL 和 MPL。

开源许可证的几种类型

有几种常见的开源许可证。它们都属于上述几类较广泛的开源许可证类别之一。不过,我们这里将重点介绍几种比较流行的开源许可证。

MIT 许可协议

MIT许可证是一种宽松型许可协议,它允许用户使用、修改或分发软件。这种许可证由麻省理工学院创建。用户还可以选择不公开他们的修改。

然而,用户必须在包含许可和版权声明的情况下向软件的所有者致谢。使用MIT许可的示例项目包括Angular、Node.js和React。

通用公共许可证(GPL)

通用公共许可证(GPL)是一种copyleft许可证。它由理查德·斯托曼; 自由软件基金会的创始人创建。在分发过程中,带有GPL许可证的开源软件不能将修改后的作品变为专有。这意味着修改后的作品不能被私有化或闭源。修改后的作品必须公开并提供给其他用户,且不得限制使用。

任何对GPL许可的软件所做的修改都必须在相同的许可条款下发布。例如,比如Linux核心、Notepad++和WordPress这些项目就是使用GPL许可的。

Apache许可证

Apache许可证是一种宽松的许可证。它由Apache软件基金会制定。Apache许可证允许用户在包含版权、专利、商标和版权声明的情况下自由使用软件。

与GPL许可证的不同之处在于,对Apache许可证软件所做的修改在修改后不能使用相同的许可证。然而,如果未经任何修改就使用Apache许可证软件,则必须在Apache许可证下发布。

对软件所做的任何修改都必须清晰地标出通知。该通知应声明对软件的哪个部分进行了修改。例如,使用Apache许可证的项目有Apache HTTP服务器和Swift。

BSD: BSD 许可证

BSD许可证是由伯克利加州大学创建的一种宽松许可证。它有多个版本,类似于Apache许可证。BSD许可证允许您在包含版权和许可条款的情况下使用、修改和分发软件。

它并不强制修改必须在 BSD 许可证的条款下分发。但是,你不能用该许可证的名字来推销你的软件。它也与其他许可证兼容。使用 BSD 许可证的项目示例包括 Go 和 Django(Python 框架)。

用户可以在OSI网站上找到更多许可证文件及相关信息。

开源许可证的含义及影响

开源许可证无论宽松还是 copyleft(共享引用许可证),都有不同的常见理解。

  1. 结果:开发人员和用户需要了解他们所选的许可证。不了解所选许可证的类型可能会引发法律问题。比如,如果用户修改了GPL许可的软件并将其合并到专有软件中,可能会导致法律麻烦。开源软件的开发者和用户必须谨慎选择合适的许可证。

  2. 采纳:一些开源许可证比其他许可证更受欢迎。这是因为它们提供了更大的灵活性和方便性。例如,宽松许可更受欢迎。这是因为用户可以在不公开的情况下,在宽松许可的软件基础上进行开发。这种灵活性使使用和商业化变得更加简单。

  3. 商业用途:一些企业依赖开源软件(OSS)来创建产品。然而,开源软件许可证可能会影响这些产品的商业化。例如,如果一家企业使用GPL许可证的软件来创建其产品,它可能会遇到商业化上的限制。这是因为GPL许可要求任何修改的代码也必须公开,并且可供公众使用。用户可能不愿为这种公开的软件或产品付费。这就是为什么企业需要特别注意他们所用开源软件的许可证类型。

  4. 安全性:许可证通常不提供任何保证。用户必须承担潜在漏洞、错误或缺陷所带来的风险。这意味着使用过程中产生的任何问题都由用户自行承担。因此,没有保证使得在使用开源资源前进行审查变得尤为重要。
结尾。

了解开源许可证很重要,无论你是开发者还是用户。到目前为止,你应该已经熟悉了各种许可证。选择合适的许可证可以让你更好地利用开源软件(OSS)的优势。

在使用、修改或分发开源软件(OSS)之前,请务必花时间查看其附带的许可协议。这有助于避免法律问题和安全漏洞,并确保符合使用条款的要求。

更多阅读

请点击这里下载研究报告:https://www.nber.org/system/files/working_papers/w9363/w9363.pdf.

  1. https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=0625aada49caa66436ee6e3fac88542678100d0e 点击链接可查看相关PDF文档。

  2. https://opensource.org/licenses

  3. https://www.leanix.net/en/wiki/trm/open-source-licenses(开源许可证维基页面)
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP