赞
踩
开源软件和免费不一一对应,因此不受限制地随意使用是不对的。在开源诞生之初,自由软件是当时的主流提法,回顾开源的发展史,从自由软件到开源运动实现了非常大的跨越,前者更多的是一种精神的倡导,而后者着眼于软件的协同开放,因此会有非常严谨的开源许可证的规则和限制。开源软件能走到今天的发展程度,就是因为有了这么一套遵从开源精神的规则体系,才能够健康发展。开源精神的载体之一就是开源许可证。
开源这个词最初其实是指开源软件(OSS)。开源软件是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码。在开源领域中,存在着两大阵营:FSF(Free Software Foundation,自由软件基金会) 和 OSI(Open Source Initiative,开放源代码促进会),他们对开源有着不同的理念。
FSF 是开源泰斗 RMS 创立的重要的开源软件基金会 (1985/10/04), FSF 创立之初主要是为了筹集资金来建设 GNU 的内核 Hurd 项目及工具链,虽然 GNU 项目本身没有完成,但是该过程中创造出的大量软件工具,日后成为了 GNU/Linux 的重要组成部分。为了贯彻 RMS 对 “自由” 和 “开源” 的理解,FSF 建立了开源领域的第一个 “copyleft” 属性的许可证 - GPL (GNU Public License) 。
OSI 由开源界泰斗 Bruce Perens 和 Eric S. Raymond (ESR) 在 1998 年组建,目的是在原教旨主义开源 (最早的开源运动发起和推动者们) 与软件工业/商业之间激烈矛盾中,寻求更平衡的体系和治理机制。OSI 组织批准过的许可大概有 80 种,包括 Apache License v2、GPL v2、MIT/BSD 等。
FSF 与 OSI 是推广和维护开源秩序的非盈利组织,维护着 “开源” 的定义以及主要的开源软件协议递交、讨论与审核。只要条款被审核通过是符合开放源代码定义的,就可以称之为开放源码授权条款,采用开放源码条款散布授权的软件即是开放源码软件,若一份商业产品中包含有开放源码软件,其包装上可以标上开放源码促进会的证明标章,认识这个标章的消费者就可以知道产品中有使用到开放源码软件,进而因为开放源码软件特有的优点而购买产品。
我们接触到的开源软件一般都有对应的开源许可证(Open Source License)对软件的使用、复制、修改和再发布等进行限制。许可证即授权条款,开源许可证就是保证开源软件这些限制的法律文件,目的在于规范受著作权保护的软件的使用或者分发行为。开源许可证是开源软件生态系统的基础,可以促进软件的协同开发。
常见的开源许可证主要有 Apache、MIT、BSD、GPL、LGPL、MPL、SSPL 等,可以大致分为两大类:宽松自由软件许可协议(Permissive free software licence)和著作权许可证(copyleft license)。
Permissive free software licence 是一种对软件的使用、修改、传播等方式采用最低限制的自由软件许可协议条款类型。这种类型的软件许可协议将不保证原作品的派生作品会继续保持与原作品完全相同的相关限制条件,从而为原作品的自由使用、修改和传播等提供更大的空间。
Apache、MIT、BSD 都是宽松许可证。
Copyleft License 是在有限空间内的自由使用、修改和传播,且不得违背原作品的限制条款。如果一款软件使用 Copyleft 类型许可协议规定软件不得用于商业目的,且不得闭源,那么后续的衍生子软件也必须得遵循该条款。
GPL 是典型的强著作(copyleft )许可证,LGPL、MPL 是弱著作权(copyleft )许可证。SSPL 则是近年来 MongoDB 创建的一个新许可证,存在较大争议,开放源代码促进会 OSI 甚至认为 SSPL 就不是开源许可协议。
与宽松自由软件许可协议相比,两者最大的差别在于:在软件被修改并再发行时, Copyleft License 仍然强制要求公开源代码(衍生软件需要开源),而 Permissive free software licence 不要求公开源代码(衍生软件可以变为专有软件)。
知识共享协议(Creative Commons,简称CC)。严格意义上说该协议并不能说是真正的开源协议,它们大多是被使用于设计类的工程上。CC 协议种类繁多,每一种都授权特定的权利。大多数的比较严格的 CC 协议会声明 “署名权,非商业用途,禁止衍生” 条款,这意味着你可以自由的分享这个作品,但你不能改变它和对其收费,而且必须声明作品的归属。这个许可协议非常的有用,它可以让你的作品传播出去,但又可以对作品的使用保留部分或完全的控制。最少限制的 CC 协议类型当属 “署名” 协议,这意味着只要人们能维护你的名誉,他们对你的作品怎么使用都行。
我们通过一张图来简单了解一下常见开源许可证之间的区别:
Apache 许可证(Apache License),是一个由 Apache 软件基金会发布的自由软件许可证,最初为 Apache http 服务器而撰写。Apache 许可证要求被授权者保留著作权和放弃权利的声明,但它不是一个反著作权的许可证。此许可证最新版本为 “版本2”,于 2004 年 1 月发布。Apache 许可证是宽松的,因为它不会强制派生和修改作品使用相同的许可证进行发布。
MIT 许可证之名源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称 “ X 条款”(X License)或 “ X11 条款”(X11 License)。MIT 内容与三条款 BSD 许可证(3-clause BSD license)内容颇为近似,但是赋予软件被授权人更大的权利与更少的限制。有许多团体均采用 MIT 许可证。例如著名的 ssh 连接软件 PuTTY 与 X Window System (X11) 即为例子。Expat 、Mono 开发平台库、Ruby on Rails、 Lua 5.0 onwards 等等也都采用 MIT 授权条款。
BSD 许可协议( Berkeley Software Distribution license )是自由软件中使用广泛的许可协议之一。BSD 就是遵照这个许可证来发布,也因此而得名 BSD 许可协议。BSD 包最初所有者是加州大学的董事会,这是由于 BSD 源自加州大学伯克利分校。BSD 开始后,BSD 许可协议得以修正,使得以后许多 BSD 变种,都采用类似风格的条款。跟其他条款相比,从 GNU 通用公共许可证(GPL)到限制重重的著作权(Copyright),BSD 许可证比较宽松,甚至跟公有领域(Public Domain)更为接近。事实上,BSD 许可证被认为是 copycenter(中间著作权),介乎标准的 copyright 与 GPL 的 copyleft 之间。“Take it down to the copy center and make as many copies as you want”。可以说,GPL 强迫后续版本必须一样是自由软件,BSD 的后续版本可以选择要继续是 BSD 或其他自由软件条款或闭源软件等等。
GPL 协议和 BSD、Apache Licence 等鼓励代码重用的许可很不一样。GPL 的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。由于 GPL 严格要求使用了 GPL 类库的软件产品必须使用 GPL 协议,对于使用 GPL 协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用此作为类库和二次开发的基础。
LGPL 是 GPL 的一个为主要为类库使用设计的开源协议。和 GPL 要求任何使用/修改/衍生自 GPL 类库的的软件必须采用 GPL 协议不同。LGPL 允许商业软件通过类库引用 (link) 方式使用 LGPL 类库而不需要开源商业软件的代码。这使得采用
LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。但是如果修改 采用 LGPL 协议的代码或者对其进行衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。因此采用 LGPL 协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以采用 LGPL 协议的代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
SSPL 是 MongoDB 创建的一个源码可用的许可证,以体现开源的原则,同时提供保护,防止公有云供应商将开源作品作为服务提供而不回馈此开源作品。SSPL 允许自由和不受限制的使用和修改开源作品,但如果你把此开源作品作为服务提供给别人,你也必须在 SSPL 下公开发布任何修改以及管理层的源代码。开放源代码促进会 OSI 对 SSPL 颇有微词,它认为 SSPL 不是开源许可协议,实际上是一个源代码可用的许可证。
Elastic License 是非商业许可证,核心条款是如果将产品作为 SaaS 使用则需要获得商业授权。
本文介绍了开源许可证的前世今生,并通过一张图快速区分常用开源许可证。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。