`

OpenSource 开源知识1

阅读更多
开源协议知多少(转自http://media.ccidnet.com/art/3023/20061129/963705_1.html)

除了大家比较熟悉的GPL协议之外,开源界还有很多许可证,如LGPL许可证、BSD许可证等,下面就来一一介绍。

LGPL许可证

LGPL许可证是LESSER GENERAL PUBLIC LICENSE的简写,也叫LIBRARY GENERAL PUBLIC LICENSE,中文译为“较宽松公共许可证”或者“函数库公共许可证”。该许可证适用于一些由自由软件基金会与其它决定使用此许可证的软件作者所特殊设 计的软件软件包─比如函数库(即Library)。

LGPL许可证的特点

LGPL许可证,也是自由软件联盟GNU开源软件许可证的一种,大部分的 GNU软件,包括一些函数库,是受到原来的 GPL许可证保护的。而LGPL许可证,适用于特殊设计的函数库,且与原来的通用公共许可证有很大的不同,给予了被许可人较为宽松的权利,所以叫“较宽松 公共许可证”。在特定的函数库中使用它,以准许非自由的程序可以与这些函数库连结。

当一个程序与一个函数库连结,不论是静态连结或使用共享函数库,二者的结合可以合 理地说是结合的作品,一个原来的函数库的衍生品。因此,原来的通用公共许可证只有在整个结合品满足其自由的标准时,才允许连结。较宽松通用公共许可则以更 宽松的标准允许其它程序代码与本函数库连结。例如,在少数情况下,可能会有特殊的需要而鼓励大家尽可能广泛地使用特定的函数库,因而使它成为实际上的标 准。为了达到此目标,必须允许非自由的程序使用此函数库。一个较常发生的情况是,一个自由的函数库与一个被广泛使用的非自由函数库做相同的工作,在此情况 下,限制只有自由软件可以使用此自由函数库不会有多少好处,故我们使用了LGPL许可证。

在其他情况下,允许非自由程序使用特定的函数库,可以让更多的人们使用自由软件的大部分。例如,允许非自由程序使用GNU C函数库,可以让更多的人们使用整个GNU作业系统,以及它的变形,GNU/Linux操作系统。

尽管LGPL许可证对使用者的自由保护是较少的,但它却能确保与此函数库连结的程序的使用者拥有自由,而且具有使用修改过的函数库版本来执行该程序的必要方法。

MPL许可证

MPL是The Mozilla Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对 源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA 认定的开源软件许可证)。但是,相比而言MPL还有以下几个显著的不同之处:

◆ MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL 许可证中对“发布”的定义是“以源代码方式发布的文件”,这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个 豁口。

◆ MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。

◆ 对软件专利的态度,MPL许可证不像GPL许可证那样明确表示反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是 专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。

◆ 对源代码的定义

而在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修 改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’),或者 不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。”

◆ MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。

BSD许可证

BSD许可证原先是用在加州大学柏克利分校发表的各个4.4BSD/4.4BSD- Lite版本上面(BSD是Berkly Software Distribution的简写)的,后来也就逐渐沿用下来。1979年加州大学伯克利分校发布了BSD Unix,被称为开放源代码的先驱,BSD许可证就是随着BSD Unix发展起来的。BSD许可证现在被Apache和BSD操作系统等开源软件所采纳。

相较于GPL许可证和MPL许可证的严格性,BSD许可证就宽松许多了,一样是只 需要附上许可证的原文,不过比较有趣的是,它还要求所有进一步开发者将自己的版权资料放上去,所以拿到以BSD许可证发行的软件可能会遇到一个小状况,就 是这些版权资料许可证占的空间比程序还大。

QPL许可证

QPL是The Qt Public License的简称,是挪威一家机构创设的。QPL许可证的基本要求是获得源代码、修改源代码,并可将修改从原始代码中分离出来;修改可以按照作者的意 愿被组合到新版本中;二进制代码可以和原始代码同名,这一点对于动态连接库来说尤其重要;任何人都可以修正错误,这对于系统的发布者来说很关键;修改过的 软件可以按照满足QPL许可证基本要求的任何开源软件许可证进行发布。

QNCL许可证

QNCL许可证是Qt Non Commercial License的简称,是QPL许可证的“兄弟版”,就像GPL许可证与LGPL许可证的关系一样,QNCL许可证比QPL许可证更严格一些。

在修改和发布方面的规定,QNCL许可证与QPL许可证是一样的,差异就在于软件的 范围方面,或者说在连接方面。QNCL许可证规定“假如一个应用程序给你提供了一个入口,使你有权使用QNCL许可证下的软件的功能开发程序、重复使用程 序的某一部分或其他软件的某一部分,那么对该应用程序的使用视为是使用QNCL许可证下的软件的行为,该应用程序应受到QNCL许可证的约束”。QNCL 许可证比QPL许可证更严格之处在于,QNCL许可证像GPL许可证那样,完全禁止根据本许可证得到的开放源码软件与其他非系统库函数连接的软件以其他许 可方式一起发布。

Jabber许可证

Jabber许可证的全称是Jabber Open Source License,由美国Jabber.Com, Inc.公司提供。Jabber许可证在源代码的复制、发行规定方面基本上和其他许可证没有什么特别,但有一些细节规定值得借鉴:

◆ 可以将通过该许可证获得的源代码及修改过的源代码与其他类型的不受该许可证约束的代码结合,以新产品的形式发布,只要其中经该许可证获得的源代码及修改过的源代码能以与该许可证的要求类似的、符合OSI认证的其他开源软件许可证的方式发布。

◆ 明确了需将源代码置于公众可以得到的状态的时间至少应为12个月。

◆ 第三方对法定权利的声明。假如使用者发现通过本许可证获得的源代码及应用程序接口中有一方拥有的知识产权,应单独在源码的发布时冠以“LEGAL”为抬头 的声明,写明知识产权权利要求的细节,提请源代码的接受者知道自己获得了哪些知识产权的授权,让源码的接受者知道如何与知识产权权利人联系。

◆ 细化了该许可证终止的情形,包括不按该许可证的要求发布和使用源代码、发生专利侵权诉讼。

Common许可证

Common许可证的全称是Common Public License。在满足OSIA开源软件许可证认证标准的前提下,Common许可证还有一些细节性的规定值得参考:

◆ 明确了专利授权。一般的开源软件都明确源代码的版权人将自己的修改权、复制权等版权权利向公众许可,但保留署名权,而Common许可证在此基础上还明确假如源代码中含有专利权,源代码专利权人将复制、使用的专有权利向公众许可。

◆ 规定可以将源代码及修改过的源代码与其他类型的不受本许可证约束的代码结合,以新产品的形式发布,只要其中经该许可证获得的源代码及修改过的源代码能按该许可证的要求发布即可。

◆ 细化了该许可证终止的情形,包括发生专利侵权诉讼。

◆ 明确了一个独立承担责任的原则,就是假如按该许可证使用源代码的使用者将获得的源代码应用于商业使用,那么他就要对在商业应用中出现的由于使用该源代码程序而产生的侵权诉讼承担完全责任。这一条规定是比较特殊的,绝大多数开源软件许可证都不这么要求。

IBM许可证

IBM许可证的全称是IBM Public License。在满足OSIA开源软件许可证认证标准的前提下,IBM许可证还有如下一些细节性规定:

◆ 明确了专利授权。一般的开源软件都明确源代码的版权人将自己的修改权、复制权等版权权利向公众许可,但保留署名权,而IBM许可证在此基础上还明确假如源代码中含有专利权,源代码专利权人将复制、使用的专有权利向公众许可。

◆ 细化了该许可证终止的情形,包括不按该许可证的要求发布和使用源代码、发生专利侵权诉讼等。

◆ 像Common许可证一样,IBM许可证也明确了独立承担责任原则,即假如按该许可证使用源代码的使用者将获得的源代码应用于商业使用,那么他就要对在商业应用中出现的、由于使用该源代码程序而产生的侵权诉讼承担完全责任。

分享到:
评论

相关推荐

    java-opensource-doc开源项目中文文档合集

    【java-opensource-doc开源项目中文文档合集】 这个资源集合是针对Java开源项目的中文文档,旨在帮助中国开发者更好地理解和使用各种流行的Java开源框架、库和工具。这些文档通常由社区贡献者翻译,提供了官方英文...

    Open Source Software Notice.pdf

    标题中提到的“Open Source Software Notice.pdf”指的是一份通知文档,该文档用于对产品中包含的开源软件进行说明。这意味着该产品中含有可以被用户访问和修改的源代码,这些代码遵循特定的许可协议,允许免费使用...

    Why do commercial companies contribute to open source software

    #### 标题解读:“Why do commercial companies contribute to open source software” 该标题直接点明了文章的主题,即研究商业公司在开源软件领域的参与动机。商业公司在开源软件项目中的活跃表现,已成为一个...

    qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe.7z

    本文将详细介绍关于"qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe.7z"这个压缩包所包含的知识点,主要涉及QT框架、开源许可证、Windows平台、MinGW编译器、OpenGL图形库以及7z压缩格式。 1. QT框架: QT是...

    开源许可-软件自由和知识产权法Open Source Licensing - Software Freedom and Intellectual Property Law

    开源许可和许可问题指南。 说明如何选择开放源代码软件的许可证,以及所选许可证如何影响开发人员,经理,律师和业务。

    Producing Open Source Software

    《Producing Open Source Software》(生产开源软件)这本书是由Karl Fogel所著,专注于如何运行和管理成功的开源项目。Karl Fogel是开源社区的资深人士,曾参与过多个著名的开源项目,包括CVS和Subversion等版本...

    Reusing Open Source Code

    “opensource”这一标签表明本书的核心内容与开源软件有关,涵盖了开源软件的定义、发展历程以及在现代信息技术产业中的应用等方面。该标签暗示了本书不仅适合软件开发者阅读,也适合对开源文化感兴趣的普通读者了解...

    开源许可的兴起The Rise of Open Source Licensing

    ### 开源许可的兴起:对软件行业中知识产权使用的挑战 #### 引言 随着信息技术的快速发展,开源许可在软件开发领域中的应用越来越广泛。本研究旨在探讨开源许可如何挑战传统软件行业的知识产权观念及其实际运用方式...

    开源应用程序架构(The Architecture of Open Source Applications)

    本书采用“知识共享署名3.0 Unported”许可证发布,这意味着任何人都可以自由地分享和使用书中的内容,只要正确地标注来源。全书通过一系列深入浅出的章节来探讨不同开源项目的架构设计理念和技术实现方法,为读者...

    qt-opensource-linux-x64-5.12.1/6/9/12.run 百度网盘链接

    首先,标题中提到了“qt-opensource-linux-x64-5.12.1/6/9/12.run”,这里指的是Qt开源版安装文件的名称。Qt是一个跨平台的应用程序和用户界面框架,广泛应用于开发图形用户界面程序和非GUI程序。它支持多种操作系统...

    开源应用程序架构 二(The Architecture of Open Source Applications 2)

    ### 开源应用程序架构二(The Architecture of Open Source Applications 2) #### 概述 《开源应用程序架构二》是一本深入探讨多种开源项目设计细节和技术实践的专业书籍。本书沿用了第一卷的成功模式,通过专家...

    IBM & Open Source

    - 遵循“开源倡议组织(Open Source Initiative, OSI)”的许可证之一。 - 优先考虑用户的权利。 ##### 用户、开发者与合作伙伴社区 - 开放参与:鼓励所有相关人员积极参与开源项目。 #### 五、软件许可分类 - **...

    NXTTour open source lego

    1. 开源机器人系统概念:文件中提到的NXTTour是一个开源机器人系统,这是一个基于互联网操作的项目,旨在通过开源软件实现远程控制机器人进行物理探索。 2. LEGO Mindstorms NXT平台:该机器人系统基于LEGO ...

    开源硬件DIY Building Open Source Hardware pdf

    通过阅读《Building Open Source Hardware》这类专业书籍,读者可以学习到如何通过开源的方式进行硬件DIY,进而拓展硬件知识和技能。对于希望参与到硬件DIY领域的制作者和黑客们来说,这本书不仅是一个知识学习的...

    官网qt-x11-opensource-src-4.2.2.tar.gz下载

    "qt-x11-opensource-src-4.2.2.tar.gz"是一个源代码压缩包,其中包含了QT 4.2.2版本针对X11窗口系统的开源源代码。 这个压缩包的下载意味着你将拥有QT库的完整源码,可以自定义编译和配置以适应特定的Linux环境或...

    了解开源和免费软件许可Understanding Open Source and Free Software Licensing

    开源软件的核心理念是共享精神,它强调知识的无界限传播。 #### 免费软件 免费软件与开源软件有所不同,尽管两者经常被混淆。免费软件更侧重于用户的自由而非价格上的“免费”。根据自由软件基金会(Free Software ...

    Code Reading, The Open Source Perspective

    《Code Reading, The Open Source Perspective》是Diomidis Spinellis所著的一本关于开源代码阅读视角的专业书籍。这本书为程序员们提供了一套技能,帮助他们学会如何阅读和理解代码,特别是那些庞大、复杂或者难以...

    qt-everywhere-opensource-src-5.6.2.tar.gz

    以上就是从标题“qt-everywhere-opensource-src-5.6.2.tar.gz”和描述“ubuntu移植qt制作qmake”中提炼出的相关知识点。这些步骤和技巧对于Linux系统上的Qt开发和跨平台应用移植至关重要。在实际操作中,开发者需要...

    安装qt-everywhere-opensource-src-4.7.3.tar.gz

    首先需要获取该版本的Qt源码包`qt-everywhere-opensource-src-4.7.3.tar.gz`。获取方式可以是通过官方网站或其他可信渠道下载。 **注意:** 题目中提到的“qt-everywhere-opensource-src-4.8.0.tar.gz”与标题不...

Global site tag (gtag.js) - Google Analytics