跳转到内容

开源软件(FOSS)概述/知识产权和许可

来自维基教科书,开放世界中的开放书籍

开源软件的许可安排是什么?

[编辑 | 编辑源代码]

开源软件是在各种不同的许可证下发布的。主要有两种许可证类型和无数的变体。两种主要的许可证是 GNU(GNU's Not Unix 的递归缩写)通用公共许可证BSD 风格许可证。可以在自由软件基金会网站上找到更详细的许可证列表,地址是http://www.fsf.org/licenses/license-list.html

GNU 通用公共许可证 (GPL)

[编辑 | 编辑源代码]

这旨在确保该许可证下的用户自由永远得到保护。用户可以对GPL程序做任何他们想做的事情,包括复制、分发和修改。当软件被分发给其他用户时,许可证的条款主要影响用户。

分发GPL软件的关键条款包括

  1. GPL程序的分发者还必须向接收者提供源代码。
  2. 分发者对GPL程序做出的任何更改也必须在 GPL 下获得许可。
  3. 分发者不得对他们分发的GPL程序的用户施加任何非GPL限制。
  4. GPL软件的接收者被授予与原始分发者相同的复制、修改和分发软件的权利。

GPL软件构成了开源软件的大多数:高达 73% 的开源项目。[1] 在开源软件中使用GPL 的主要动机之一是确保一旦某些内容被发布为开源软件,它将永远保持开源软件状态。不可能添加额外的许可来剥夺用户重新分发或修改程序的权利。商业软件公司无法获取GPL程序,修改它,然后以不同的专有许可证出售它。

GPL 的完整文本可以在http://www.fsf.org/licenses/gpl.html找到。

BSD 风格许可证

[编辑 | 编辑源代码]

BSD 风格(伯克利系统分发)许可证因此而得名,因为它们在精神上与加州大学伯克利分校颁发的原始许可证相同。这些是最宽松的许可证之一,因为它们基本上允许用户对软件做任何他们想做的事情,只要

  1. 通过在源代码文件中包含原始版权声明,对原始许可方进行归属;以及
  2. 不试图起诉或追究原始许可方的损害赔偿责任。

早期版本要求在所有宣传材料中都承认加州大学伯克利分校(或发布原始软件的任何组织),但这一要求在大多数最新版本中已被删除。

大量的开源软件项目(包括几个关键组件)都是在BSD 风格许可证下获得许可的。例子包括

  1. Apache Web 服务器 – 如今互联网上使用最广泛的 Web 服务器[2]
  2. XFree86 窗口系统 - 几乎所有开源系统图形用户界面的基础
  3. FreeBSDNetBSDOpenBSD – 所有基于伯克利系统分发(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]
  1. Wheeler, David, “使您的开源软件与 GPL 兼容。否则” [主页在线];可从 http://www.dwheeler.com/essays/gpl-compatible.html 获取;互联网;2003 年 11 月 9 日访问。
  2. Netcraft, “2003 年 5 月 Web 服务器调查” [主页在线];可从 http://news.netcraft.com/archives/2003/05/05/may_2003_web_server_survey.html 获取;互联网;2003 年 6 月 9 日访问。
  3. Somogyi, Stephan, “BSD 障眼法”,2000 年 4 月 3 日,ZDNet 新闻 [主页在线];可从 http://zdnet.com.com/2100-11-519701.html?legacy=zdnn 获取;互联网;2003 年 11 月 9 日访问。
  4. “微软、TCP/IP、开源和许可” Kuro5hin [主页在线];可从 http://www.kuro5hin.org/story/2001/6/19/05641/7357 获取;互联网;2003 年 11 月 9 日访问。
  5. “关于 GNU GPL 的常见问题解答” [主页在线];可从 http://www.fsf.org/licenses/gpl-faq.html#MereAggregation 获取;互联网;2003 年 11 月 9 日访问。
  6. “为什么您不应该在下一个库中使用 Lesser GPL” [主页在线];可从 http://www.gnu.org/licenses/why-not-lgpl.html 获取;互联网;2012 年 5 月 3 日访问。
华夏公益教科书