许可式和著佐权许可是两种开源许可,它们在代码的重用和再分发方式上有所不同。许可式许可施加的限制极少,允许开发人员修改、分发和在专有项目中使用代码,只要满足基本的署名等要求即可。另一方面,著佐权许可要求任何衍生作品——使用许可代码构建的软件——也必须以相同的著佐权条款分发,确保代码及其衍生作品保持开源。 核心区别在于它们如何强制开放:许可式许可优先考虑灵活性,而著佐权许可优先考虑确保衍生作品保持开放。
许可式许可,例如 MIT 许可和 Apache 许可 2.0,旨在最大限度地提高采用率和重用率。 例如,MIT 许可仅要求在任何再分发中,即使在闭源项目中,都附带原始版权声明和许可文本。 Apache 2.0 添加了明确的专利授权和针对专利诉讼的保护。 这些许可在 JavaScript (Node.js) 或云原生工具(例如 Kubernetes)等生态系统中很受欢迎,开发人员希望他们的代码被广泛使用而没有法律摩擦。 公司通常更喜欢许可式许可,用于他们希望其他人集成到专有产品中的库或工具,因为它避免了强制第三方开源他们的代码。
著佐权许可,如 GNU 通用公共许可证 (GPL),强制执行更严格的共享要求。 GPL 规定任何衍生作品(例如代码的修改版本或链接到它的软件)也必须根据 GPL 获得许可,并包含其源代码。 例如,如果您修改 Linux 内核(GPL 许可)并分发它,您必须共享您的更改。 更强大的变体(如 AGPL)将其扩展到通过网络访问的软件。 著佐权在 Git 或 WordPress 等项目中很常见,在这些项目中,保持对改进的开放访问是首要任务。 选择著佐权的开发人员通常旨在防止专有分支,同时促进社区协作,但这可能会阻止需要闭源组件的商业采用。