Java程序员需求理解的五种开源协议[Java编程]
本文“Java程序员需求理解的五种开源协议[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
五种开源协议的对比(BSD,Apache,GPL,LGPL,MIT).
当Adobe、Microsoft、Sun等一系列巨子开始表现出对“开源”的爱好时,“开源”的时代行将到来!
当今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical).我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议.假如要开源自己的代码,最好也是挑选这些被批准的开源协议.
这里我们来看四种最常用的开源协议及它们的实用范围,供那些预备开源大概利用开源产品的开辟人员/厂家参考.
BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
BSD开源协议是一个给于利用者很大安闲的协议.基本上利用者可以“为所欲为”,可以安闲的利用,改正源代码,也可以将改正后的代码作为开源大概专有软件再公布.
但“为所欲为”的前提当你公布利用了BSD协议的代码,或则以BSD协议代码为底子做二次开辟自己的产品时,需求满意三个条件:
1. 假如再公布的产品中包含源代码,则在源代码中必须带有本来代码中的BSD协议.
2. 假如再公布的只是二进制类库/软件,则需求在类库/软件的文档和版权声明中包含本来代码中的BSD协议.
3. 不可以用开源代码的作者/机构名字和本来产品的名字做市场奉行.
BSD 代码鼓舞代码同享,但需求恭敬代码作者的着作权.BSD由于答应利用者改正和重新公布代码,也答应利用或在BSD代码上开辟商业软件公布和贩卖,因此是对商业集成很友好的协议.而很多的公司企业在选用开源产品的时刻都首选BSD协议,因为可以完好掌握这些第三方的代码,在必要的时刻可以改正大概二次开辟.
Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)
Apache Licence是着名的非盈利开源组织Apache采取的协议.该协议和BSD近似,一样鼓舞代码同享和恭敬原作者的着作权,一样答应代码改正,再公布(作为开源或商业软件).需求满意的条件也和BSD近似:
1. 需求给代码的用户一份Apache Licence
2. 假如你改正了代码,需求再被改正的文件中阐明.
3. 在延伸的代码中(改正和有源代码衍生的代码中)需求带有本来代码中的协议,商标,专利声明和其他本来作者规定需求包含的阐明.
4. 假如再公布的产品中包含一个Notice文件,则在Notice文件中需求带有Apache Licence.你可以在Notice中增添自己的答应,但不可以表现为对Apache Licence构成更改.
Apache Licence也是对商业利用友好的答应.利用者也可以在需求的时刻改正代码来满意需求并作为开源或商业产品公布/贩卖.
GPL(GNU General Public License)
我们很熟习的Linux就是采取了GPL.GPL协议和BSD, Apache Licence等鼓舞代码重用的答应很不一样.GPL的动身点是代码的开源/免费利用和引用/改正/衍生代码的开源/免费利用,但不答应改正后和衍生的代码做为闭源的商业软件公布和贩卖.这也就是为什么我们能用免费的各种linux,包含商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开辟的免费软件了.
GPL协议的主要内容是只要在一个软件中利用(“利用”指类库引用,改正后的代码大概衍生代码)GPL 协议的产品,则该软件产品必须也采取GPL协议,既必须也是开源和免费.这就是所谓的“传染性”.GPL协议的产品作为一个单独的产品利用没有任何问题,还可以享用免费的上风.
由于GPL严峻要求利用了GPL类库的软件产品必须利用GPL协议,关于利用GPL协议的开源代码,商业软件大概对代码有保密要求的部门就不合适集成/采取作为类库和二次开辟的底子.
别的细节如再公布的时刻需求伴随GPL协议等和BSD/Apache等近似.
LGPL(GNU Lesser General Public License)
LGPL是GPL的一个为主要为类库利用计划的开源协议.和GPL要求任何利用/改正/衍生之GPL类库的的软件必须采取GPL协议差别.LGPL 答应商业软件通过类库引用(link)方法利用LGPL类库而不需求开源商业软件的代码.这使得采取LGPL协议的开源代码可以被商业软件作为类库引用并公布和贩卖.
但是假如改正LGPL协议的代码大概衍生,则全部改正的代码,触及改正部份的额外代码和衍生的代码都必须采取LGPL协议.因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不合适但愿以LGPL协议代码为底子,通过改正和衍生的方法做二次开辟的商业软件采取.
GPL/LGPL都保障原作者的知识产权,避免有人操纵开源代码复制并开辟近似的产品
MIT(MIT)
MIT是和BSD一样宽范的答应协议,作者只想保存版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原答应协议的声明,无论你是以二进制公布的还是以源代码公布的.
以上是“Java程序员需求理解的五种开源协议[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |