`

开源许可协议_百度百科

阅读更多

 

开源许可协议

开源许可协议的由来

  自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,影响软件的发展,开源社区开发出了各种的开源许可协议。

  人们不太容易区分一个软件是否真正开源的根本原因,在于开源研究院认可的许可有60多种。但在这60多种许可中,有一个许可明显主宰着开源世界。迪博纳说:“GPL(General Public License,通用性公开许可协议)是当今开源世界中最重要的许可。”根据迪博纳引述的Google所进行的研究,基于GPL的开源代码在所有开源软件中占45%---50%。

常见的几种开源许可协议

GPL

GPL授予程序接受人以下权利,或称“自由”:

  * 以任何目的运行此程序的自由

  * 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提)

  * 再发行复制件的自由

  * 改进此程序,并公开发布改进的自由(能得到源代码是前提)

  相反地,随版权所有软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制法律允许的行为,比如逆向工程。

  GPL与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制件及演绎作品中得到保障。它通过一种由Stallman发明的叫copyleft的法律机制实现,即要求GPL程序的演绎作品也要在GPL之下。相反,BSD式的许可证并不禁止演绎作品变成版权所有软件。

COPYLEFT

  GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,及所有修改。且复制件、修改版本,都必须以GPL为许可证。

  这些要求就是copyleft,它的基础就是作品在法律上版权所有。由于它版权所有,许可证接受人就无权进行修改和再发行(除合理使用),除非它有一个copyleft条款。如果某人想行使通常被法律所禁止的权利,只需同意GPL的条款。相反地,如果某人发行软件违反了GPL(比如不开放源代码),他就有可能被原作者起诉。

  copyleft利用版权法来达到与其相反的目的:copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。这也是GPL被称作“被黑的版权法”的原因。

  许多GPL软件发行者都把源代码与可执行程序捆绑起来。另一方式就是以物理介质(比如CD)为载体提供源代码。在实践中,许多GPL软件都是在互联网上发行的,源代码也有许多可以FTP方式得到。

  copyleft只在程序再发行时发生效力。对软件的修改可以不公开或开放源代码,只要不发行。注意copyleft只对软件有效力,而对软件的输出并无效力(除非输出的是软件本身)。不过这在GPL版本3中可能会有改动。

LGPL

  GNU宽通用公共许可证,简称LGPL(GNU Lesser General Public License),被用于一些(但不是全部)GNU程序库。这个许可证以前被称为GNU库(Library)通用公共许可证。

  LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在LGPL或其它GPL变种的授权下。

Apache License

  Apache License是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件:

  * 需要给代码的用户一份Apache License

  * 如果你修改了代码,需要再被修改的文件中说明

  * 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明

  * 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改

  Apache License也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

BSD

BSD授权许可证(FreeBSD Copyright Information)具有多种授权许可证。总的来说你可以对软件任意处理,只要你在软件中注明其是来自于那个项目的就可以了。也就是说你具有更大的自由度来处置软件。如果你对软件进行了修改,你可以限制其他使用者得到你修改的软件的自由。

  BSD授权许可证没有实现"通透性"自由,也就是其不保证软件源代码开放的连续性。这样如果你希望采用别人开发的BSD软件,进行一些修改,然后作为产品卖,或者仅仅保密自己的做的一些除了软件开发以外的工作,那么你就可

  以从中得利。

  当一个非程序员仅仅理解一个程序的功能,但是不了解程序是如何做的时,即使你没有在开发软件中做任何工作那你就可以通过高超的市场技巧将软件卖给该用户。比如拿最流行的桌面操作系统作为例子,你就能很好的理解一个没有很好的程序技巧的软件公司只要具有高超的市场营销策略同样可以将垃圾卖给客户。如果你不具有很强大的编程能力,但是具有很强的市场能力和能将其他开发者的软件包括到自己的系统,而同时不将自己的修改开放出来将是非常强大的能力。从赚钱为目的的商务角度看来,如果你使用了BSD授权许可证的软件,那么你就可以任意进行。你可以更好地控制你的OS系统,并且防止其他人拷贝你的商业产品。

总结

  简单的说,就是你使用了GPL许可证的软件,那么你的软件产品就被GPL“传染”了,也必须“自由”!这对国内的商业软件开发商来说是很难接受的。但是LGPL, Apache License, BSD就不存在这个问题,后两者只要求你对软件原作者的工作进行必要的认可和尊重就行了,所以这是适合商业应用的。所以在选择应用开源软件时,一定要明白自己的用途,选择合适许可证下的软件。

开源许可协议_百度百科

分享到:
评论

相关推荐

    开源机械臂IOS app源码.zip_unclev1j_开源舵机协议_机械臂_舵机

    这个项目的核心是开源舵机协议,它允许用户通过iOS设备控制机械臂的动作,实现对机械臂的精细操作。下面我们将深入探讨这个项目中的关键知识点。 1. **舵机**: 舵机是一种广泛应用于机器人和模型制作中的小型伺服...

    各操作系统开源授权许可协议.docx

    开源授权许可协议详解 在软件开发中,开源授权许可协议是一个非常重要的概念。随着开源软件的普及,各种开源授权许可协议也相应地出现了。常见的开源授权许可协议有GPL、LGPL、Apache、BSD等。每种协议都有其特点和...

    PPI.rar_C语言_PPI协议_S7 协议_s7-200_西门子

    西门子S7-200的PPI通讯协议,支持复合指令读写

    Java程序员必须了解的七大开源协议

    BSD许可是一种非常宽松的开源许可协议,它允许用户自由使用、修改和分发软件,只需要保留原始版权和许可声明即可。具体来说,使用BSD许可的软件时需遵循以下几点: - 在发布修改版或衍生作品时,必须包含原始的版权...

    SALOME_salome开源_CAEPreProcessor_salome_开源cae软件_salome软件官网_

    CAE PreProcessorSALOME是一个开源软件,为数值模拟提供了一个通用的前后处理平台。它基于一个由可重用组件构成的开放、灵活的体系结构。SALOME是一个跨平台的解决方案。它是根据GNU LGPL许可证的条款分发的。您可以...

    moufer-Modoer-master.zip_Modoer 开源_Modoer__3.6.5_modoer_php modo

    5. **开源许可证**:了解所使用的许可证类型(如 GPL 或 MIT),以确保合规使用和分发。 6. **版本控制**:可能通过 Git 等工具获取和管理代码库,了解基本的版本控制概念。 7. **安全实践**:运行开源Web应用时,...

    zigbee完全开源的协议栈

    "Zigbee完全开源的协议栈"指的是Zigbee协议栈的源代码是公开的,允许开发者自由查看、修改和分发,这为开发人员提供了更大的灵活性和定制能力。 Zigbee协议栈通常包括几个关键组件: 1. **物理层(Physical Layer, ...

    淘宝活动平台_开源_源码_推哈网_免费版_绿色版v1.2

    - 许可协议:需明确开源许可协议,如MIT、Apache 2.0等,规定使用、修改和分享的规则。 - 社区贡献:鼓励开发者提交代码、报告问题,共同维护和升级项目。 4. **二次开发** - 自定义模块:根据店铺特色,开发者...

    1_Python文字游戏_Python文字游戏_在线游戏开发_开源的mud_muddery_

    5. **BSD许可证**: BSD许可证是一种宽松的开源软件许可证,允许他人在保留原作者版权的前提下自由使用、修改和分发代码,甚至可以用于商业用途。这种许可证为Muddery的广泛使用和适应提供了法律基础。 6. **Evennia...

    完整开源ZigBee协议栈C语言代码

    "完整开源ZigBee协议栈C语言代码"是一个重要的资源,因为它提供了一个详细的实现参考,可以帮助开发者理解和掌握ZigBee协议的工作原理。C语言是系统编程的常用语言,因此这个开源项目特别适合硬件开发者和嵌入式系统...

    DL69845通讯协议.rar_698.45_69845协议_DL69845通讯协议_groundi78_终端698协议

    698.45面向对象协议,主要用于电力用采终端

    几种开源的TCP/IP协议栈分析

    本文将分析五个开源的TCP/IP协议栈:BSD TCP/IP、uC/IP、LwIP、uIP以及TinyTcp,探讨它们的特点、适用场景以及选择考虑因素。 1、**BSD TCP/IP协议栈**: 源自Berkeley Software Distribution (BSD),它是其他商业...

    几种开源TCPIP协议概述--LwIP_uIP_TinyTcp_uCIP

    BSD栈在BSD许可协议下提供了专业TCP/IP栈的基础框架,这种许可协议允许开发者在不支付版权费用的情况下,对BSD栈进行修改或整合进专业栈中。BSD栈不仅是许多专业栈的起点,而且也是许多TCP/IP协议创新的源头,比如...

    ONVIF2.0中文协议+开源库onvif.rar

    此压缩包文件"ONVIF2.0中文协议+开源库onvif.rar"包含了ONVIF 2.0版本的中文协议文档以及一个名为"rapidonvif-master.zip"的开源库,为学习和开发基于ONVIF标准的应用提供了宝贵的资源。 首先,ONVIF 2.0中文协议...

    各种开源协议简析 GPL、BSD、MIT、Mozilla、Apache、LGPL1

    在开源软件的世界里,选择合适的许可证对于项目的发展至关重要。本文将分析几种常见的开源协议,包括GPL、BSD、MIT、Mozilla(MPL)、Apache 2.0和LGPL,帮助开发者理解它们的特点和适用场景。 首先,BSD开源协议...

    Java程序员需要了解的几个开源协议介绍.rar

    在编程世界中,Java程序员经常会接触到各种开源项目,这些项目的许可协议对于理解代码的使用、修改和分发有着至关重要的作用。本篇文章将详细介绍几个Java程序员必须了解的开源协议,帮助开发者更好地理解和遵循这些...

    Profibus.rar_beneathqiz_profibus开源_stm32 dp_wealth25o_单片机 profib

    基于STM32单片机的profibus-dp的软件通信协议的实现

    APTARE IT Analytics 授权__许可指南__版本 10.6-37.pdf

    产品中可能包含需向第三方支付许可费的第三方软件,这些软件可能受开源或免费软件许可证约束。用户在使用产品时,需遵循开源或免费软件的相应许可证条款。 2. **许可证限制**:未经Veritas Technologies LLC及其许...

    2018年开源许可证使用指南.rar

    开源许可证是软件开发领域的重要组成部分,它规定了用户在获得、使用、修改和分发开源软件时的权利和义务。这份2018年的开源许可证使用指南详细阐述了各种开源许可证的特点、适用场景以及如何正确使用它们。对于...

    KNX协议第三方开源库

    "KNX协议第三方开源库"指的是由非官方组织或个人开发的,支持KNX协议的软件开发工具包,这些库通常是免费提供的,并且允许开发者在自己的项目中使用和修改源代码。 在描述中提到的"tuwien.auto.calimero"是一个具体...

Global site tag (gtag.js) - Google Analytics