开源协议(开放源代码许可证协议)。开源是一种全球文化现象,社区合作已经成为了被广泛采用的开发模式。Linux、Apache、PHP、Firefox等业界领先的各类软件产品均使用了社区开发模式并采用某种开源协议。
开源软件是开放的、免费的,源代码是开放的,用户可以免费下载和使用。为了维护作者和贡献者的权利,保证软件不被一些商业机构和个人窃取,开源社区提出了一些开源许可协议。已经有了许多不同的开源协议,包括BSD、Apache、GPL、MIT、LGPL等。下面介绍一些开源协议:
GPL
GNU公共许可证(GNU Public License)。GNU源于20世纪80年代初期,Richard Stallman在软件业引发了一场革命。这个人坚持认为软件应该是“自由”的,软件业应该发扬开放、团结、互助的精神。这种在当时看来离经叛道的想法催生了GNU计划。GNU是GNU's Not Unix的缩写。
我们很熟悉的Linux就是采用了GPL。概括来说,GPL包括下面这些内容:
1.软件最初的作者保留版权。
2.其他人可以修改、销售该软件,也可以在此基础上开发新的软件。但必须保证这份源代码向公众开放。
3.经过修改的软件仍然要受到GPL的约束——除非能够确定经过修改的部分是独立于原来作品的。
4.如果软件在使用中引起了损失,开发人员不承担相关责任。
完整的GPL内容可以在GNU的官方网站www.gnu.org获得。
BSD协议
BSD开源协议给予使用者很大自由。开发者可以自由使用和修改源代码,也可以将修改后的源代码作为开源或者专有软件再发布。但是有以下几个要求:
1.如果再发布的产品中含有源代码,则在源代码中必须带有原来代码中的BSD协议。
2.如果再发布的只是二进制类库/软件,则需要再类库/软件的文档和版权申明中包含原有代码中的BSD协议。
3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件进行发布和销售,因此是对商业集成很友好的协议。而很多公司企业在选用开源产品的时候首选BSD协议,因此可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
MIT
MIT是和BSD一样宽泛的许可协议,源自麻省理工学院,又称X11协议。作者只想保留版权,而无任何其他限制。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用于商业软件。使用MIT的软件项目有:jquery,Node.js。