虽然知道开源有个许可证 LICENSE,但一直没给自己写的一些开源项目选择开源许可证。于是准备系统了解一下开源许可证,以及如何为 Github 项目添加 LICENSE。
OSI(Open Source Initiative)
即开发源代码组织,是一个旨在推动开源软件发展的非盈利组织。可以在 Open Source Initiative 中查看所有的开源协议。
开源许可证
关于开源许可证的简单区别
至于如何选择,下图更加通俗易懂
其中开源许可证可分为两大类
宽松式(permissive)许可证
宽松式许可证(permissive license)是最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。
它有三个基本特点。
(1)没有使用限制
用户可以使用代码,做任何想做的事情。
(2)没有担保
不保证代码质量,用户自担风险。
(3)披露要求(notice requirement)
用户必须披露原始作者。
常见许可证
常见的宽松式许可证有四种。它们都允许用户任意使用代码,区别在于要求用户遵守的条件不同。
(1)BSD(二条款版)
分发软件时,必须保留原始的许可证声明。
(2) BSD(三条款版)
分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为软件促销。
(3)MIT
分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。
(4)Apache 2
分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。
不难看出这类许可证要求相对宽松,市面上大部分的开源项目主要以 MIT 和 Apache 两者为主。使用 MIT 协议开源项目如 vue,react,bootstrap,vscode,electron,axios,terminal 等等,作为大多数开发者而言,MIT 无法是最好的选择。