如何选择开源协议

在这里插入图片描述
大家好,我是米兰,一个五年级开始编程的小伙。我曾经研究过各种技术,在代码底层摸爬打滚,经历过无数次从入门到放弃的生活,感受过黑暗与毒打。如果你也有相同的经历和探究的问题,欢迎关注我,咱们共同探究,共同进步。废话不多说,送货!在这里插入图片描述
开源项目在为开发人员提供自由和方便的同时,不能牺牲设计者和开发者的利益,否则将没有设计师和开发人员支持开源项目。在这里插入图片描述
图片来源|全网
为了最大程度地保障项目设计师和程序员的权益,同时又不影响开源项目的自由,当今世界存在上百种开源协议,开源协议的存在规范了代码使用者的权限范围以及以各种方式使用代码需要承担的责任。
开源协议不是法律合同,不具有法律效力,但在因版权问题所引发的纠纷中,开源协议也是一份很重要的证据。

开源协议是有哪些?

如果你是部署编写开源项目的开发者,你需要了解针对不同的开源项目的开发时,选择合适于当前项目的开源协议,一旦选择该许可协议,在源代码和软件的公开与发布时就需要遵循许可协议的相关规范,做到既要附和自身的权益 又要最大程度地保证开源项目的自由与开放,使更多人可以参与到开源项目的开发与维护中,在当前的基础中派生出更优秀的版本,这正是每一个开源项目的开发者的初衷。
前文提到,世界上的开源协议有上百种,但最流行的有以下几种:GNU GPL、BSD、MIT、Mozila以及GNU LGPL,它们广泛应用于商业界和非商业界的众多项目。下文逐一介绍:

1.GNU GPL(GNU General Public License,GNU通用公共许可证)

GPL协议规定只要当前软件包含了遵循了GPL协议的部分,或者当前项目基于遵循GPL协议的第三方代码开发,整个软件项目均必须遵循GPL协议,所以GPL协议对于商业界并不友好。但上述的规范并不代表协议遵循具有的唯一性,一个软件项目选用遵循的开源协议可以不止一个,如QT框架(C++库) 开源项目,其同时遵循GPL协议以及LGPL协议。在这里插入图片描述图片来源|全网
凡是遵循GPL协议的项目其代码体派生的项目均需要遵循GPL许可协议,这就是GPL协议的传染性,遵循该协议的项目必须
开源免费
,包括其子代在内的版本不得闭源收费。因为GPL协议直接触犯了商业软件的根基,所以GPL协议不适合商业软件使用
对于非商业软件,遵循GPL协议并开放源代码的项目极多,如上文提及的QT框架,以及包括Linux操作系统在内的大多数项目,这些项目多数是终身免费的,无论如何派生演绎,这些项目始终遵循GPL协议。

主要特点说明
复制自由允许把软件复制到任何人的计算机中,并且不限制复制的次数。
传播自由允许软件以各种方式传播和推广。
收费传播这里的收费不同于商业软件的销售,但必须在交易前事先让购买者知道该软件是可以通过相关路径免费获取的,所以这些收费带来的盈利是购买者自愿付费获得的。
删改自由允许其他开发者我各种途径获得软件源代码,并允许其任意修改源代码并生成子项目,但修改发布的软件必须遵循GPL协议。

2.BSD(Berkeley Software Distribution,伯克利软件发布版)协议

用户基本可以对遵循BSD协议的第三方代码实现完全形式上的掌控,与GPL的协议内容雷同的是,用户可以自由使用遵循该许可协议软件源代码
在这里插入图片描述
图片来源|全网
与GPL协议差异的是修改后并重新发布的软件,可以实现闭源收费,可以将软件作为商业软件发布并销售,在一定条件下可以不再遵循本许可协议,从而实现真正的闭源收费,条件如下:
1.如果发布的软件包括源代码,必须继续使用BSD许可协议。
2.不允许使用原始软件的开发者以及从属机构的名称实行市场推广。
3.如果发布的软件仅含二进制格式的程序,则必须在使用文档或版权文件中声明原始代码遵循的BSD协议。

BSD协议对商业软件有较强的支持力,很多公司在使用第三方开源代码,都首选BSD协议,开发人员可以对遵循该协议的开源项目实现增删并重新以闭源形式发布,以实现公司的各种盈利需求。
##3.Apache 许可证版本(Apache License Version)
在这里插入图片描述
图片来源|全网
协议遵循该许可协议开发的项目有Hadoop、Apache HTTP Server、MongoDB 等,使用遵循Apache协议的开源项目意味着可以免费复制、使用、修改、再许可、分发本作品及衍生作品(可以不用公开源码)。选择使用本许可协议在软件制作发布时就必须遵循以下规范:
1.等软件及其派生版本必须继续遵循Apache许可协议。
2.如果派生版本对原始代码进行了修改,需要在文档中进行声明。遵循本协议的所有开源项目的专利实现永久性共享。
3.若软件直接来源或基于他人编写的第三方代码,保留原始代码的协议商标,专利声明及其他作者声明的内容信息。保留相关信息的同时,不能使用第三方项目的商标进行市场推广。
4.如果再发布的软件中有声明文件,则需在此文件中标注 Apache 许可协议及其他许可协议。由此看出,协议BSD协议类似都对商业软件比较友好,Apache协议在为开发人员提供版权及专利的许可时,允许用户自由修改,再次发布原软件的派生版本。以保证第三方软件的权利,以及开发者的自由。

(4) MIT(Massachusetts Institute of Technology)协议

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

(5)GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证)

LGPL协议是GPL协议的派生版本,所以称为GPL V2,LGPL协议广泛应用于开源类库,与GPL协议相同,使用者可以任意修改相关代码并重新发布相关类库的派生版本,但必须继续遵循LGPL协议并上存发布衍生代码,所以对基于LGPL协议的类库进行二次开发并不适合于商业界的需求。
然而商业软件可以引用遵循LGPL协议的第三方类库迁移类库作为自身功能实现的一部分,基于该用途的商业软件可以不必遵循相关协议,附和商业软件的本质,因而被商业软件广泛应用。

如何选择开源协议

乌克兰程序员 Paul Bagwell 画了一张分析图,说明应该怎么选择开源协议。在这里插入图片描述
图片来源|全网
在这里插入图片描述今天的教程就到这里了,如果你觉得有收获,不要忘了关注收藏和转发,希望我的教程可以帮助到更多的人,咱们下期不见不散。

本文参考资料:百度百科,C语言中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值