跳转到内容

Ict@innovation:释放非洲的 IT 业务/1-4

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

模块 1.4 FOSS 许可模型

[编辑 | 编辑源代码]

持续时间

[编辑 | 编辑源代码]

1:00 小时

交付方式

[编辑 | 编辑源代码]

出于教学目的,建议培训师/讲师使用讲座和讨论环节相结合的方式作为交付本模块的主要手段。

在专有或免费开源环境中,存在着各种各样的许可模型。本节信息集中在免费开源模型许可证上,涵盖三种许可证类型以及它们之间的区别。

常见许可证的总体描述

[编辑 | 编辑源代码]

由于这适用于所有其他软件作者,这意味着任何软件最初都是专有的,这意味着除原始作者(或者,如果作者已将使用和分发权转让给其他人,则版权持有者)以外,没有人可以合法控制其使用和分发方式。

这也意味着这些程序的用户在与软件相关的方面没有任何自由。未经版权持有者的明确许可,他们不得重新分发该程序,或对其进行更改并使其适应自己的需求。

然而,更改现有程序并将其适应自身需求的能力是 FOSS 背后理念的基石。GNU 项目和自由软件基金会的创始人理查德·斯托曼定义了程序必须为用户提供的四项基本自由,才能被称为“自由”。

  1. 运行程序的自由,无论出于何种目的(自由 0)。
  2. 研究程序如何工作并将其适应您需求的自由(自由 1)。获取源代码是实现此目的的前提条件。
  3. 重新分发副本的自由,以便您可以帮助您的邻居(自由 2)。
  4. 改进程序并向公众发布您的改进(以及一般修改后的版本)的自由,以便整个社区都能受益(自由 3)。获取源代码是实现此目的的前提条件。

正如 FOSS 的快速全球增长所表明的那样,这些自由显然是可取的。那么如何将一段软件从其最初的专有状态转移到 FOSS 呢?

这是通过许可证实现的。维基百科简要地将许可证描述如下。

动词“许可”或“授予许可”是指给予许可。名词“许可”(在英式拼写中)是指该许可以及纪念该许可的文件。许可可以由一方(“许可方”)授予另一方(“被许可方”),作为这些双方之间协议的一个组成部分。对许可的简要定义是“(许可方)不诉讼(被许可方)的承诺”。

因此,许可证是版权持有者向用户发布的文件,该文件决定用户可以对相关软件程序执行哪些操作。

在专有软件的世界中,此许可证通常被称为“最终用户许可协议”(EULA),并且通常对程序的使用施加了广泛的限制,这些限制除了版权法规定的限制之外还存在。

许可证是 FOSS 的关键

[编辑 | 编辑源代码]

FOSS 以不同的方式使用许可证。在这里,它们是使程序用户摆脱最终用户许可协议限制以及版权法默认施加的限制的手段。

将程序作为 FOSS 发布的基本流程如下。

  • 您编写一段软件。这会自动使您成为版权持有者,赋予您广泛的权力来决定如何分发该软件。
  • 您通过在软件中添加版权声明来声明您的版权,显示版权符号、您的姓名和创建或出版年份(“© John Miller 2009”)。
  • 凭借您决定程序分发方式的权力,您决定要将其作为 FOSS 分发。这意味着您的程序将为所有用户提供上述四项自由。
  • 您选择适合您需求的 FOSS 许可证,并将其集成到程序的源文件中,以及添加包含许可证文本的文件(通常称为 license.txt)。
  • 您分发程序,无论免费还是收费。

从这个过程中,可以清楚地看到 FOSS 使用许可证作为一种技巧,以绕开版权法通常对用户施加的限制。在声明您对程序的版权后,您使用此权利来决定您的软件应该为用户提供版权法以外的某些自由。您还不会对用户强加侵入性的 EULA。

许可证为程序用户提供了法律保证,确保他们享有这些自由,并且您不会采取法律措施剥夺他们这些自由。

程序是 FOSS 还是非 FOSS 由其分发的许可证决定。如果该许可证为用户提供上述四项自由,那么该程序就是 FOSS。如果不是,则为非自由(或专有)。

请注意,将一段软件作为 FOSS 发布并不意味着您放弃对其的所有权利。越来越多的法院案件表明,FOSS 程序的版权持有者已经起诉了一家公司侵犯版权,因为该公司在不遵守许可证的情况下将 FOSS 程序构建到产品中,例如,没有向产品购买者提供源代码。

FOSS 许可证的基本类型

[编辑 | 编辑源代码]

所有自由软件许可证都必须授予人们上面讨论的所有自由。但是,除非应用程序的许可证兼容,否则由于许可证技术细节,通过混合源代码或直接链接二进制文件来组合程序是有问题的。间接连接在一起的程序可以避免此问题。

FOSS 许可证可以归类为以下类型之一。

  • 公有领域软件 - 版权已过期,该作品未受版权保护,或者作者已放弃版权。由于公有领域软件缺乏版权保护,因此可以将其自由地并入任何作品,无论是专有的还是免费的。
  • 宽松许可证,也称为 BSD 风格,因为它们被应用于与BSD 操作系统一起分发的许多软件。作者保留版权,只是为了免除担保并要求对修改后的作品进行适当的归属,但允许在任何作品(甚至专有作品)中重新分发和修改。
  • Copyleft 许可证,最著名的是GNU 通用公共许可证。作者保留版权并允许重新发布和修改,前提是所有此类重新发布都在相同的许可证下。其他人添加和修改的代码,只要它们与原始许可产品的任何部分一起发布,也必须在相同的“copyleft”许可证下进行许可。开源倡议组织 (OSI),http://www.opensource.org/licenses,作为自由及开放源码软件 (FOSS) 社区的倡导者,也维护和更新各种类型的 FOSS 许可证,按名称和类别列出。

双重许可证

[edit | edit source]

双重许可证可以同时缓解许可证互操作性问题(例如 GPLv2 与 GPLv3),并为 FOSS 商业模式提供基础,在该模式中,代码的商业使用会产生收入。

在这种双重许可情况下,授予不同的条款取决于生成代码的发布方式。对于将在 GPL 或开源许可证下发布的新代码,将授予相应的 GPL 或开源许可证。但对于以商业方式将许可代码与其专有产品一起发布的商业供应商,并且不会在 GPL 下许可和发布其自身的源代码,则会授予商业许可证,通常与许可费或其他收入分享相关。MySQL 数据库平台在其许可页面https://www.mysqlserver.cn/about/legal/licensing/上提供了一个关于双重许可的很好的例子。

虽然 FOSS 许可的最佳实践难以概括,但以下断言是安全的。

  • GPL 仍然代表着 FOSS 许可的最高理想,应该在任何许可决定中加以考虑。但是,包括依赖代码许可证、合作协议、目标市场、商业模式和机构约束在内的因素可能会阻止 GPL 成为最佳选择。另一方面,GPL 许可在 FOSS 发布中提供了“道德制高点”,并使项目免于解释和辩护为何选择“不太自由”的许可。
  • 在寻求提高 FOSS 项目的采用率和普及率时,也应考虑双重或多重许可方法。虽然此类许可模式具有“淡化”纯 GPL 产品的效果,但它们为那些可能无法合并可用代码的人提供了灵活性。上述提到的 FOSS 许可异常也缓解了代码互操作性障碍。

无论如何,创建新的 FOSS 许可证只应作为最后的手段。虽然 OpenMRS 项目等相关的独特机构和法律要求可能需要专门的许可证,但新的许可证只会使情况更加混乱。应尽一切努力不仅使用现有的许可证,而且使用广泛发布的许可证,以便最大限度地提高许可代码的可重用性。

FOSS 许可资源

[edit | edit source]

模块 1.4:评估

[edit | edit source]
  • 练习 1: 讨论并回答以下问题
  • 什么是软件许可证?
  • 专有软件和自由及开源软件的许可证有什么区别?
  • 本模块中有哪些自由软件许可证?
  • 除了本模块中的许可证外,请搜索并列出另外两个 FOSS 许可证。
  • 你对双重许可证有什么理解?
  • 找到并讨论至少 1 个 (一个) 双重许可 FOSS 解决方案的例子。


上一章 | 下一章

华夏公益教科书