技术选型需要关注的软件开源协议
开源软件的授权许可都是基于开源许可协议的,常见的开源许可协议有GPL、LGPL、APL、BSD、MIT、Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。它们之前有很多相同的地方,也有很多不同的地方,本文将分析一下这些协议之间的区别。
GPL(GNU General Public License),使用源软件的类库引用(源代码)、改变(修改了源代码)的新软件,也必须采用GPL进行授权。就是说,只要使用了GPL开源软件的源代码或拿它的源代码进行了修改而编写的新的软件,也必须加入到GPL的阵营。很明显,不能拿GPL授权的开源东东来做商业软件。这个协议有个好处,就是极大增加了使用GPL的软件的数量。采用GPL授权的软件有:Linux、MySQL等。
LGPL(Lesser GPL),相比GPL的严格,LGPL要温和很多。可以通过引用类库的方式(不是直接使用源代码)拿LGPL授权的东东来重新开发商业软件。如果是要修改源代码,是相应的修改和衍生出来的代码都要使用LGPL开放源代码。采用LGPL的软件有:JBoss、Hibernate、FCKeditor等。
APL(apache Licence vesion 2.0),适用于商业软件,允许修改代码后再发布(不用开放源代码)。采用APL的软件有Hadoop、Apache HttpServer等。
BSD(Berkeley Software Distribution),这个协议的要求很宽松,允许他人修改和重新发布代码,可以在此基础上开发出商业软件进行销售。所以,此协议适用于商业软件。采用BSD协议的软件最著名的有nginx。
MIT(Massachusetts Institute of Technology),又称X11协议。MIT与BSD类似,但是比BSD协议更加宽松,算是目前限制最少的协议了。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。采用MIT的软件有:jquery、Node.js
你要觉得这篇文章比较好,记得点推荐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通