github这个网站,我想大家肯定都逛过,这里面汇聚了人类的智慧结晶,各种各样的开源软件涵盖了几乎所有计算机语言以及开发场景

但在我们开心地使用开源软件时,其实它们是存在一定使用限制的,而这些限制就来源于每一个开源软件所遵循的 许可证,即所谓的 开源许可证。不要以为这些许可证无足轻重,如果我们将开源软件用于商用并且不遵循其许可证所规定的使用限制,那么很大可能就会惹上麻烦

因此本文就准备聊聊 开源许可证 的相关内容,从而避免今后“惹麻烦”,废话不多说,开搞!

9eefec80020b4a2b988914415c44ef05_tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp

什么是开源许可证

简单来说,开源许可证就是为开源软件规定其 使用限制与范围

最开始它只是一个君子协议,但是随着软件行业的发展,开源许可证逐渐成为了一种具有法律效力的协议,也就是说人们在使用开源软件时,越来越应该注意其遵循的许可证,防止惹上不必要的麻烦

1768bb83868a4c2088c23b8450aabb74_tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp

开源许可证的种类

开源许可证其实存在上百种,我们不需要了解每一种,只需要了解最主要的几种就可以了

从大的类别上可以分为两类:copyleft许可证permissive许可证,这两种类别下的子类罗列如下:

如何记住种类繁杂的许可证

面对如此多的许可证,我想每个看到的人都会抓狂吧,庆幸的是,我从阮一峰大佬的 这篇文章 里看到了一个能高效记忆这些许可证内容的方式,这里我贴个原图供你参考

bg2011050101.png

结语

我认为作为一个程序员,是很有必要了解这些非编码的“软知识”的,因为软件领域不止有算法和数据结构,而是包含了许多内容,比如许可证就是其中一员,所以我们一定要拓展自己的眼界,这样才能成为一名全面综合型的人才