在这个金钱就是一切的社会中存在一批崇尚自由、开源、等诸多信仰的人,并用技术将开源这件事情做到极致,这一种免费,而在英语free 除了有免费还有自由的意思,一提到免费可能大多数人会吵吵,免费就是不要钱,免费就是可以任意复制粘贴开源代码,其实并不是这样的,下面我们来看看关于开源的诸多协议
GPL
记得当年oracle 收购sun的时候,mysql主要开发人也是现在MariaDB的创始人 大呼不可取,oracle会杀死mysql 其实不然,这么多年过去了,好像oracle并没有杀死mysql,mysql的生态貌似并没有收到影响,为什么呢 ? 因为GPL协议救了mysql 什么是GPL协议呢?简单的说 如果我的代码是用了开源GPL协议的,那么我的代码衍生出来的任何代码都必须使用GPL协议,好像这么说没啥感觉,假设我是oracle公司的人(拉里·埃里森) 我花了70亿买了sun 针对mysql数据库这个产品,我不能闭源,顶多不在继续开发了,但是作为mysql创始人可以重新拉一个分支继续开发虽然发行版本不能在叫mysql,换个名字而已,谁在乎呢 貌似现在MariaDB 发展的还不错
LGPL
LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之LGPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品
BSD
* 1. 对于本软件源代码的再散播,必须保留上述的版权宣告、此四条件表列,以 * 及下述的免责声明。 * 2. 对于本套件二进位可执行形式的再散播,必须连带以文件以及/或者其他附 * 于散播包装中的媒介方式,重制上述之版权宣告、此四条件表列,以及下述 * 的免责声明。 * 3. 所有提及本软件功能或是本软件使用之宣传材料,都必须包还含下列之交 * 待文字: * “本产品内含有由柏克莱加州大学及其软件贡献者所开发的软件。” * 4. 未获事前取得书面许可,不得使用柏克莱加州大学或本软件贡献者之名称, * 来为本软件之衍生物做任何表示支持、认可或推广、促销之行为
APACHE
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
需要给代码的用户一份Apache Licence,如果你修改了代码,需要在被修改的文件中说明。在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
最后附上阮一峰老师总结的流程图 想必大家会更加清楚了
不知道 老师的博客遵循什么协议 如果有侵犯 及时告知 立马删除
原文地址:https://www.cnblogs.com/qqsu007/p/11606339.html