常见软件许可简介

软件版权属于知识产权的著作权范畴,具有知识产权的特征,即时间性,专有性和地域性。

软件版权在法律上称为“计算机软件著作权”。属于著作权(知识产权)的一种。国家颁布有《计算机软件保护条例》,保护权益人的软件著作权。

软件许可证是管理软件使用或重新分发的法律文书,一般是通过合同法来进行。典型的软件许可证用来授权被许可人(通常是最终用户)使用软件的一个或多个副本。


license

软件的版权

软件的版权主要涉及到如发布权(Right to distribute)、是否保留版权(Copyright retained)、发行权(Right to perform)、展示权限(Right to display)、复制权(Right to copy)、 修改权(Right to modify)、再许可权(Right to sublicense)等权利。

根据这些权利的授权不同形成了一些分类:比如公共领域软件、不受保护的FOSS(例如BSD)、受保护的FOSS(例如GPL)、免费软件\共享软件\自由软件、专有软件、涉及商业机密的软件等。

来自维基百科的这个图可以说明他们之间的关系。


license

网络上讨论的大多数都属于FOSS范围的,因为其他的软件相对来说要清晰很多,比如公共领域的软件,就是完全开放的;涉及商业机密的很明显就是保留一切权利的;专有软件也很清楚,买了的人也就是可以使用一下,当然这个和具体的每个软件上提供的最终合同有很大关系;免费软件\共享软件\自由软件,大多数只是免费给你使用一般都不存在开源的问题,所以呢也很清楚;唯独FOSS是免费开源的但是又保留了一些权力,所以,就需要了解一下各种许可都是怎么保护这些权力的。

FOSS

FOSS(Free and open-source software)是指免费和开源软件,是可以分类为免费软件和开源软件的计算机软件。任何人都可以以任何方式免费使用,复制,学习和更改软件,源代码是公开共享的,以鼓励人们自愿改进软件的设计。这与专有软件形成对比,专有软件受限于版权,源代码通常对用户是隐藏的。

使用FOSS的好处很多,比如降低软件成本,提高安全性和稳定性,保护隐私等。最著名的例子是Linux和BSD的开源操作系统被广泛使用,可以用在服务器,台式机,智能手机等各种设备中。

license

GPL

GPL全称GNU GPL,是指GNU通用公共许可证,似乎是最广泛使用的免费和开源软件领域的许可证,它的目的是保证最终用户能够自由运行,研究,共享和修改软件。许可证最初由自由软件基金会(FSF)的Richard Stallman为GNU项目撰写,并授予计算机程序的收件人自由软件定义的权利。

GPL是第一个copyleft许可证,这意味着衍生作品只能按照相同的许可条款分发。GPL的出发点是代码的开源/免费使用、引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

也就说你只要用到了使用GPL许可证的产品,那你的软件产品必须也采用GPL协议,既必须也是开源和免费。这样对于商业软件或者对代码有保密要求的部门来说,就不适合使用这类产品作为类库和二次开发的基础了。

为了解决这个商业化的问题GPL衍生出了LGPL(GNU Lesser General Public License),LGPL允许商业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码,但是引用可以,如果在此基础上做二次开发的话就必须遵循LGPL,所以不适合二次开发。

使用GPL许可证的最突出的软件程序是Linux内核和GNU编译器集合(GCC)。GPL已经发布了三个版本GPL、GPL V2、GPL V3。

MIT

MIT许可证是源自麻省理工学院的自由软件许可证。作为一个许可证,它对再利用只有非常有限的限制,因此具有良好的许可证兼容性。

MIT许可证允许在专有软件中重复使用,前提是许可软件的所有副本都包含MIT许可条款和版权声明的副本。 MIT许可证还与许多copyleft许可证兼容,例如GNU通用公共许可证(GPL)。MIT授权软件可以集成到GPL软件中,但不能反过来。

使用MIT许可证的项目包括Ruby on Rails,Node.js,jQuery和X Window系统。

BSD

BSD许可证是一系列十分宽松的免费软件许可证,对包含软件的重新分发施加的限制目前也是最小的。 这与copyleft许可证相反,copyleft许可证具有互惠共享要求。

最早的BSD许可证用于Berkeley的分发一个类似Unix的操作系统。后来BSD发展成了一类许可证。修改后的BSD许可证和最初用于BSD版本的Unix的许可证比较类似。

BSD许可证是一个简单的许可证,如果以源代码格式重新分发,仅仅要求根据BSD许可证对所有代码进行许可即可:

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

BSD与其他许可证不同,不是必须要分发源代码。这样的话使用BSD许可证的软件,无法保证代码的连续性,但是对商业应用来说BSD是一个好的选择。

由BSD UNIX衍生出最初的SCO Xenix(Microsoft及SCO共同开发)、Sun OS(SunMicroSystems开发,即Solaris前身)、NEXTSTEP(NeXT开发)等UNIX版本,这些UNIX版本均闭源且受专利保护。

ASL

Apache许可证,是Apache软件基金会编写的一个宽松的免费软件许可证。

Apache许可证要求保留版权声明和免责声明。

与其他自由软件许可证一样,许可证允许软件用户自由地将软件用于任何目的,分发,修改软件,并根据许可证条款分发软件的修改版本。Apache软件基金会的项目都根据Apache许可证来发布软件:

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

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

Apache基金会旗下的软件比较多如Tomcat、Maven、Hadoop、docker等。