GPL许可证和BSD许可证

本文对比分析了GPL和BSD两种开源许可证的区别。GPL许可证强调源代码的开放共享,要求使用GPL许可证的产品也必须开源;而BSD许可证则更倾向于代码共享,允许商业软件使用BSD许可证的代码而不必开源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不管是GPL还是GSD许可证,都是一种软件的版权声明。用来规定和限制软件源代码的传播与使用。

GPL许可证General Public License

1980年,一个叫Richard Stallman的美国程序员,因为无法容忍软件私有化造成的代码封闭,而创立了GPL许可证。他认为,软件的源代码是全人类的财富,应该允许程序员自由共享。

GPL许可证协议繁琐,在这儿就列出协议条款了,详细可以去百度。

GPL 许可证给你四项自由:

  • 运行程序
  • 查看源代码
  • 传播分发源代码
  • 传播修改的源码
唯一的限制是,如果你将软件传播给下一个人,那么必须保证下一个人也有这四项权利。其中重点是开发源代码。

一般使用GPL许可证的软件的每个源码文件开头都有下面的声明:

one line to give the program's name and an idea of what it does.
Copyright (C) yyyy  name of author

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。我们使用的linux、ubuntu、centos之所以不收费,就是因为这些系统使用的GPL许可证。GPL协议的主要内容是只要在一个软件中使用('使用'指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的'传染性'。
BSD许可证Berkeley Software Distribution License
一般使用GPL许可证的软件的每个源码文件开头都有下面的声明:
Copyright (c) <YEAR>, <OWNER>
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BSD许可证有所不同。你可以用这个软件做任何事情(包括修改销售盈利商业活动)。也没有强求你的传播下一任必须对软件开源。你将软件传播给下一任,你就失去了控制权。当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件: 

  • 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。 
  • 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。 
  • 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。同GPL 一样,需要源文件附上 license的宣告,却不需要提供原始程序代码,可以只以执行文件或二进制文件(binary form)提供给别人,但是要求将所有程序发展者的版权资料放上去。这样一个源程序中license的行数可能比代码行数还要多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值