开源软件(FOSS)概述/知识产权和许可
前言 — 介绍 — 为什么选择开源软件? — 开源软件成功案例 — Linux — 知识产权和许可 — 本地化和国际化 — 案例研究 — 附件 I:词汇表 — 附件 II:软件许可证 — 关于 APDIP — 关于 IOSN
开源软件是在各种不同的许可证下发布的。主要有两种许可证类型和无数的变体。两种主要的许可证是 GNU(GNU's Not Unix 的递归缩写)通用公共许可证和BSD 风格许可证。可以在自由软件基金会网站上找到更详细的许可证列表,地址是http://www.fsf.org/licenses/license-list.html。
这旨在确保该许可证下的用户自由永远得到保护。用户可以对GPL程序做任何他们想做的事情,包括复制、分发和修改。当软件被分发给其他用户时,许可证的条款主要影响用户。
分发GPL软件的关键条款包括
- GPL程序的分发者还必须向接收者提供源代码。
- 分发者对GPL程序做出的任何更改也必须在 GPL 下获得许可。
- 分发者不得对他们分发的GPL程序的用户施加任何非GPL限制。
- GPL软件的接收者被授予与原始分发者相同的复制、修改和分发软件的权利。
GPL软件构成了开源软件的大多数:高达 73% 的开源项目。[1] 在开源软件中使用GPL 的主要动机之一是确保一旦某些内容被发布为开源软件,它将永远保持开源软件状态。不可能添加额外的许可来剥夺用户重新分发或修改程序的权利。商业软件公司无法获取GPL程序,修改它,然后以不同的专有许可证出售它。
GPL 的完整文本可以在http://www.fsf.org/licenses/gpl.html找到。
BSD 风格(伯克利系统分发)许可证因此而得名,因为它们在精神上与加州大学伯克利分校颁发的原始许可证相同。这些是最宽松的许可证之一,因为它们基本上允许用户对软件做任何他们想做的事情,只要
- 通过在源代码文件中包含原始版权声明,对原始许可方进行归属;以及
- 不试图起诉或追究原始许可方的损害赔偿责任。
早期版本要求在所有宣传材料中都承认加州大学伯克利分校(或发布原始软件的任何组织),但这一要求在大多数最新版本中已被删除。
大量的开源软件项目(包括几个关键组件)都是在BSD 风格许可证下获得许可的。例子包括
- Apache Web 服务器 – 如今互联网上使用最广泛的 Web 服务器[2]
- XFree86 窗口系统 - 几乎所有开源系统图形用户界面的基础
- FreeBSD、NetBSD和OpenBSD – 所有基于伯克利系统分发(BSD)版本的Unix 的变体;所有这些都广泛用于互联网,尤其是FreeBSD,它运行雅虎和微软的 Hotmail 服务[3]
将BSD 风格许可代码合并到商业应用程序中非常容易。即使是微软也过去在其 Windows 代码的网络部分使用了一些 BSD 代码[4]。许多公司在其商业软件产品中都包含了Apache Web 服务器。与GPL不同,BSD 风格的许可证不要求分发源代码,允许公司隐藏其对原始代码的修改。公司也不需要授予用户查看、修改或分发公司对代码所做的修改的权利。
可以在附件 II 中找到更详细的不同软件许可证列表。
将开源软件与专有软件结合起来是可能的,这取决于“结合”的方式以及软件的具体许可证。在所有常见的开源软件许可证中,GNU GPL是最需要谨慎使用的许可证。它将“结合”定义如下
两个程序的简单聚合意味着将它们并排放在同一个 CD-ROM 或硬盘上。我们使用这个术语 (...) 在它们是独立的程序而不是单个程序的一部分的情况下。在这种情况下,如果其中一个程序受 GPL 约束,它不会对另一个程序产生任何影响。结合两个模块意味着将它们连接在一起,使它们形成一个更大的单个程序。如果任何一部分受 GPL 约束,那么整个组合也必须在 GPL 下发布 - 如果你不能或不愿意这样做,你就不可以结合它们。[5]
在这种情况下,如果在开源软件操作系统环境中使用专有应用程序,则专有应用程序不受开源软件系统的许可证的影响。例如,在GNU/Linux操作系统上运行Oracle 数据库。
将程序组合在一起的一个例子是使用 D-Bus 消息传递库 编写应用程序。D-Bus 通过允许程序相互发送消息来加速客户端和服务器程序的开发。D-Bus 在 GPL 下获得许可。由于完成的应用程序程序(编译器通过它之后)将包含来自 Gnome 应用程序框架的源代码,因此整个应用程序必须在 GPL 下获得许可。
但是,其他程序在 GPL 的另一个版本下获得许可,称为 Lesser GNU 通用公共许可证 (LGPL),例如 GLib 实用程序库。非 GPL 程序可以使用 LGPL 库,而无需在 GPL 下获得许可。 [6]
其他许可通常要宽松得多。使用 BSD 风格的许可证编写上面相同的应用程序,只需要在源代码中保留对原始许可方的归属。下面的矩阵重点介绍了在分发与 GPL 或 BSD 风格的许可软件相结合的软件时存在哪些差异。
GPL 和 BSD 风格的许可软件之间的区别 | ||
---|---|---|
GPL 许可 | BSD 许可 | |
必须分发原始源代码 | 是 | 否 |
必须分发用户创建的源代码 | 是 | 否 |
用户创建的源代码必须在 GPL 下获得许可 | 是 | 否 |
脚注
[edit | edit source]- ↑ Wheeler, David, “使您的开源软件与 GPL 兼容。否则” [主页在线];可从 http://www.dwheeler.com/essays/gpl-compatible.html 获取;互联网;2003 年 11 月 9 日访问。
- ↑ Netcraft, “2003 年 5 月 Web 服务器调查” [主页在线];可从 http://news.netcraft.com/archives/2003/05/05/may_2003_web_server_survey.html 获取;互联网;2003 年 6 月 9 日访问。
- ↑ Somogyi, Stephan, “BSD 障眼法”,2000 年 4 月 3 日,ZDNet 新闻 [主页在线];可从 http://zdnet.com.com/2100-11-519701.html?legacy=zdnn 获取;互联网;2003 年 11 月 9 日访问。
- ↑ “微软、TCP/IP、开源和许可” Kuro5hin [主页在线];可从 http://www.kuro5hin.org/story/2001/6/19/05641/7357 获取;互联网;2003 年 11 月 9 日访问。
- ↑ “关于 GNU GPL 的常见问题解答” [主页在线];可从 http://www.fsf.org/licenses/gpl-faq.html#MereAggregation 获取;互联网;2003 年 11 月 9 日访问。
- ↑ “为什么您不应该在下一个库中使用 Lesser GPL” [主页在线];可从 http://www.gnu.org/licenses/why-not-lgpl.html 获取;互联网;2012 年 5 月 3 日访问。