深圳网站建设公司信任湖南岚鸿信 赖,网络营销常用的工具有哪些,花店网站建设环境分析,wordpress my visitors 数据备份恢复作为一名软件开发人员#xff0c;你一定也是经常接触到开源软件#xff0c;但你真的就了解这些开源软件使用的开源许可协议吗#xff1f; 你不会真的认为#xff0c;开源就是完全免费吧#xff1f;那么让我们通过本文来寻找答案。 一、开源许可协议简述 开源许可协议是指开… 作为一名软件开发人员你一定也是经常接触到开源软件但你真的就了解这些开源软件使用的开源许可协议吗 你不会真的认为开源就是完全免费吧那么让我们通过本文来寻找答案。 一、开源许可协议简述 开源许可协议是指开源社区为了维护作者和贡献者的合法权利保证软件不被一些商业机构或个人窃取影响软件的发展而开发的协议。它的中文名开源许可协议外文名open source license。
二、开源许可协议之间的区别与联系 通过上图可以很清晰的了解到6种常见的开源许可协议之间的区别与联系主要围绕的就是几个核心问题
修改源代码后是否允许闭源每一个修改过后的文件是否都必须放置版权说明是否需要对每一个修改过的文件提供说明文档新增代码是否需要使用同样的许可证衍生软件的广告是否可以使用你的名字进行促销 三、几种常见开源许可协议的主要内容 说起各式各样的开源许可协议我们不得不提起GNU它的全称是“GNUs Not Unix!”GNU并非Unix的首字母递归缩写。 1985年Richard Stallman又创立了自由软件基金会Free Software Foundation来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时一些商业公司开始介入开发和技术支持。当中最著名的就是之后被Red Hat兼并的 Cygnus Solutions。 正因为有了GNU计划的大力推广后面的Linux才逐渐发展壮大直至今日它已经走到30个年头在服务器领域可谓是一枝独秀。也正因为有了Linux的蓬勃发展慢慢才看到了越来越多的开源软件走向大众视野整个软件行业才走向了发展的快车道今后也会是长盛不衰勇往直前。下面着重说一下各大流行的开源许可协议的核心内容。
1、Apache开源许可协议 Apache Apache License Apache许可协议一般常用是2.0版本Apache 2.0许可证是ASFApache Software FoundationApache软件基金会在2004年发布的以帮助ASF实现其目标“通过开源软件开发协作提供可靠且长久不衰的软件产品”。ASF出品的软件一般都采用Apache 2.0许可证。当然非ASF的项目也可以使用Apache许可证设计出来是供所有人使用的。
它的核心内容如下
可以随便使用不会因版权和专利找你麻烦不能用我的商标你分发本作品或衍生作品时可以不再提供源码你在分发时必须做到 1带上本许可证 2保留本软件的所有版权、专利等说明 3你改过的文件你得说改了哪 4NOTICE文件中的信息得保留 5在遵循本许可证的条件下你可以再许可 6本作品就这样了我不会负任何责任的你想负责你可以负但别拉上我 2、MIT开源许可协议 MIT Massachusetts Institute of TechnologyMIT许可协议之名源自麻省理工学院又称“X许可协议”或“X11许可协议”。 MIT内容与三条款BSD许可证3-clause BSD license内容颇为近似但是赋予软件被授权人更大的权利与更少的限制。
它的核心内容是
被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。被授权人可根据程式的需要修改授权条款为适当的内容。在软件和软件的所有副本中都必须包含版权声明和许可声明。 此授权条款并非属copyleft的自由软件授权条款允许在自由/开放源码软件或非自由软件proprietary software所使用。此亦为MIT与BSDThe BSD license, 3-clause BSD license本质上不同处。 MIT条款可与其他授权条款并存。另外MIT条款也是自由软件基金会FSF所认可的自由软件授权条款与GPL相容。 相对于BSD开源许可协议MIT开源许可协议是当下流行的开源许可协议中【最为宽松】的许可协议。 3、BSD开源许可协议 BSD原先是用在加州大学柏克利分校发表的各个4.4BSD/4.4BSD-Lite版本上面BSD是Berkly Software Distribution的简写的后来也就逐渐沿用下来。1979年加州大学伯克利分校发布了BSD Unix被称为开放源代码的先驱BSD许可证就是随着BSD Unix发展起来的。BSD许可证被Apache和BSD操作系统等开源软件所采纳。 相较于GPL许可证和MPL许可证的严格性BSD许可证就宽松许多了一样是只需要附上许可证的原文不过比较有趣的是它还要求所有进一步开发者将自己的版权资料放上去所以拿到以BSD许可证发行的软件可能会遇到一个小状况就是这些版权资料许可证占的空间比程序还大。
它的核心内容是
如果再发布的产品中包含源代码则在源代码中必须带有原来代码中的BSD协议。如果再发布的只是二进制类库/软件则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。可以说BSD开源许可协议是当下流行的开源许可协议中【较为宽松】的许可协议。 4、MPL开源许可协议 MPL Mozilla Public LicenseMozilla公共许可协议。MPL是The Mozilla Public License的简写是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比MPL在许多权利与义务的约定方面与它们相同因为都是符合OSIA 认定的开源软件许可证
它的核心内容是 MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来以保证其他人可以在MPL的条款下共享源代码。但是在MPL许可证中对“发布”的定义是“以源代码方式发布的文件”这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口除了接口程序的源代码以MPL许可证的形式对外许可外源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些就为借鉴别人的源代码用做自己商业软件开发的行为留了一个活口。MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。 对软件专利的态度MPL许可证不像GPL许可证那样明确表示反对软件专利但是却明确要求源代码的提供者不能提供已经受专利保护的源代码除非他本人是专利权人并书面向公众免费许可这些源代码也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。 对源代码的定义而在MPL1.1版本许可证中对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式它包括:所有模块的所有源程序加上有关的接口的定义加上控制可执行作品的安装和编译的‘原本’原文为‘Script’或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。” MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。
5、GPL开源许可协议 GPL GNU General Public License GNU通用公共许可协议。GNU通用公共许可协议是一个被广泛使用的自由软件许可协议条款GPL 保证了所有开发者的权利同时为使用者提供了足够的复制分发修改的权利。
它的核心内容是
可自由复制你可以将软件复制到你的电脑你客户的电脑或者任何地方。复制份数没有任何限制。可自由分发在你的网站提供他人下载拷贝到U盘送人。可用来盈利可以在分发软件的时候收费但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议以便让他们知道他们可以从别的渠道免费得到这份软件以及你收费的理由。可自由修改如果你想添加或删除某个功能没问题如果你想在别的项目中使用部分代码也没问题唯一的要求是使用了这段代码的项目也必须使用 GPL 协议。 需要注意的是分发的时候需要明确提供源代码和二进制文件另外用于某些程序的某些协议有一些问题和限制使用 GPL 协议你必须在源代码代码中包含相应信息以及协议本身。 6、LGPL开源许可协议 LGPL GNU Lesser General Public License GNU宽通用公共许可协议。GNU 还有另外一种协议叫做 LGPL Lesser General Public Licence它对产品所保留的权利比 GPL 少总的来说LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求使用了 GPL 代码的产品必须也使用 GPL 协议开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。
LGPL是GPL的变种也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不同是它有以下几个核心内容
可以私有使用LGPL授权的自由软件开发出来的新软件可以是私有的而不需要是自由软件任何公司在使用自由软件之前应该保证在LGPL或其它GPL变种的授权下。 四、结尾 通过上文你肯定已经打破了开源就是免费的思想了吧并且我们可以简单对上面6中常见开源许可协议在宽松到严谨的方向做个简单排序MIT BSD Apache LGPL Mozalla (MPL) GPL 另外在今后使用/学习一些开源软件/框架的时候需要了解一下它使用的是什么开源许可协议如果你想基于这个开源软件/框架进行一些商业行为请务必了解清楚该开源许可协议的核心内容以免将来在版本问题上受到法律的制裁。