Bee AntJared's Blog

FE前端

BE后端

DB数据库

OPS运维

Snippet代码片段

Note笔记

I'm also on

GitHubIf you code

MailIf you talk

RSSIf you subscribe

About.meIf you recommend

The public license


BSD

BSD开源协议是一个给予使用者很大自由的协议。使用者,可以自由的使用、修改源码,也可以将修改后的代码作为开源或者专有软件再发布。

但是,当你发布使用了BSD协议的代码,或者以BSD协议代码为基础二次开发自己的产品时,需要满足以下条件:

  • 如果再发布产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议
  • 如果再发布的只是二进制类库(软件),则需要在类库(软件)的文档和版权声明中包含原来代码中的BSD协议
  • 不可以用开源代码的作者、机构名称和原来产品的名称做市场推广

BSD鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许在BSD代码上开发商业软件进行发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache License 2.0

Apache License是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

  • 需要给代码的用户一份Apache License
  • 如果你修改了代码,需要在被修改的文件中说明
  • 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明
  • 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改

Apache License也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布和销售。

GPL

Linux采用了GPL协议。GPL和BSD、Apache License等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源、免费使用包括引用、修改后的代码、衍生代码的开源和免费使用,但不允许修改后的代码或衍生的代码作为闭源的商业软件发布和销售。这就是为什么我们能免费使用各种版本的Linux和Linux上各种各样的由个人、组织以及商业软件公司开发的软件的原因。

GPL协议的主要内容是只要在一个软件中使用(类库引用、修改后的代码或衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,即必须也是开源和免费的。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合作为类库和二次开发的基础。

其他细节如再发布的时候需要伴随GPL协议等和BSD、Apache等类似。

LGPL

LGPL是GPL的一个主要为类库使用设计的开源协议。和GPL要求任何使用、修改和衍生GPL类库的软件必须采用GPL协议不同,LGPL允许商业软件通过类库引用方式使用LGPL类库而不要开源商业软件的代码。这使得LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

GPL、LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

MIT

MIT协议又称麻省理工学院许可证,最初由麻省理工学院开发。

MIT是和BSD一样宽泛的许可协议,作者只想保留版权,而无任何其他限制。也就是说,无论你是以二进制形式发布还是以源代码形式发布,你必须在你的发行版里包含原许可协议的声明。

权利

  • 被授权人有权利使用、复制、修改、合并、出版发行、散步、再授权和贩售软件及软件的副本
  • 被授权人可根据程式的需要修改授权条款为适当的内容

义务

在软件和软件的所有副本中必须包含版权声明和许可声明。

Graphic

开源协议.svg-20.3kB