`
neo
  • 浏览: 265724 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

软件授权License的区别

 
阅读更多

 

许多开发者和设计者希望把他们的作品作为开源项目共享,他们希望其他人能够利用和共享他们的代码。 而各种开源社区就是因为这个原因而充满活力。开源软件可以用于你能想象得到的任何应用程序,许多web设计人员使用开源软件作为开发基础(例如 WordPress,Drupal等等许多CMS系统都是开源的)。

 

但是许多开发者和设计者并没有对开源License有清楚的了解,不清楚当他们选择开发自己的源代码时,他们有什么权利。如果不知道明确的 License的内容,他们就不知道如何做出最明智的选择,如何做对他们最有利。

 

对于中国的开发者来说,因为中国发达的盗版文化,泛滥的盗版软件,大部分人恐怕都完全没有License或者版权这个概念,都是奉行拿来主义。如果 我们一直都是这样的话,中国软件何来进步。所以对于国内的开发者来说,第一课就是应该学习如何使用和遵守License。

 

什么是License

许多混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原 著作权。License只是授予他们于特定权利来使用你的产品。

License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着你放弃了版权收入,别人也没有义务把你列为原作者或贡献者。

开放源代码许可协议更容易为他人作出贡献,而不必寻求特别的许可。它也可以保护你作为原创者的权利,至少确认了你的贡献。它还可以保证你的工作不 为别人所剽窃。

 

GNU General Public License

GNU General Public License (GPL)的可能是开源项目最常用的许可证。GPL赋予和保证了开源项目开发者广泛的权利。基本上,它允许用户合法复制,分发和修改软件。 这意味着你可以:

  • 复制软件

    复制软件到自己的服务器,客户端的服务器,你自己的电脑,几乎任何你想要的地方,而且没有数量限制。

  • 发布软件

    发布你想要的软件,例如,在你的网站提供下载链接,刻成光盘,打印出来等等。

  • 收取费用

    如果你想在向别人提供软件时收费,如设置在别人的网站上或者其他用途时。GPL允许你这么做,但是你必须给客户提供一个GPL副本,告诉 他们可以在其他地方得到免费版本。当然最好在此之前,告诉客户,你为什么收费。

  • 可以任意修改

    如果你想添加或删除功能,没问题。如果想在其他项目中使用部分代码,也是可以的,但是唯一的限制是此项目也必须按GPL发布。

商业软件不能使用GPL协议的代码。

 

GNU Lesser General Public License

还有另一个GNU License:GNU Lesser General Public License (LGPL)。比起GPL它授予的权限较少。一般来说,LGPL比较适合连接到非GPL或者非开源文件的库文件。由于GPL的规定,使用到部分GPL代码 的软件,必须也使用GPL,开发人员不能使用GPL来开发收费软件或者专有软件。LGPL则没有这方面的要求,不要求使用与部分代码相同的 License。

 

商业软件可以使用,但不能修改LGPL协议的代码。

 

BSD License

BSD License与其他自由软件License相比,如GPL,限制更少。但是请注意到BSD License两种版本之间的差别:New BSD License/Modified BSD License 和Simplified BSD License/FreeBSD License。它们两者都是于GPL兼容的自由软件License。

New BSD License (”3-clause license”) 可以用于任何作为版权声明和保证许可的免责声明的目的,可以通过无限长的再分发来得以维持,也就是说如果再发布的产品中包含源代码,则在源代码中必须带有 原来代码中的BSD协 议。它还有一个特殊限制条款,不用特别的许可就是限制使用派生工作的工作者名字,也就是说不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

New BSD License和Simplified BSD License的主要区别是,后者忽略了非认可条款。

 

商业软件可以使用,也可以修改使用BSD协议的代码。

 

MIT License

MIT是和BSD一样宽松的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二 进制发布的还是以源代码发布的。

  • 你可以使用,复制和修改软件
  • 你可以免费使用软件或出售
  • 唯一的限制是,它是必须附有MIT授权协议

商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。

 

Mozilla Public License 1.1

Mozilla Public License 1.1 (MPL)协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,,它要求基于这种软件得修改无偿贡献 版权给该软件。这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。

 

商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。

 

Common Development and Distribution License

CDDL(Common Development and Distribution License,通用开发与销售许可)开源协议,是MPL(Mozilla Public License)的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

 

商业软件可以使用,也可以修改CDDL协议的代码。

 

Apache License

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

  • 需要给代码的用户一份Apache License。
  • 如果你修改了代码,需要在被修改的文件中说明。
  • 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  • 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改。

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

 

商业软件可以使用,也可以修改使用Apache协议的代码。

 

Eclipse Public License

Eclipse Public License(EPL)是一个与CPL相类似的许可证,任何扩展自Eclipse源码的代码也必须是开源的。

 

Creative Commons

Creative Commons(CC)的许可证不太开放源代码授权,它们通常用于设计项目。 CC许可证有着宽广的定义,每个定义都会授予一定的权利。它有四个基本部分,可以单独或者组合使用。下面是部分概述:

  • 署名

    作者必须是作品的原创者。 除此之外,作品可以修改,分发,复制和以其他方式使用。

  • 相同方式共享

    工作可以修改,分发等等,但必须在一个许可证下。

  • 非商业

    可以修改,分发等,但不用于商业目的。 关于什么是“商业”,说法比较含糊(没有提供明确的定义),因此您可能需要在自己的项目中澄清这一点。

  • 禁止修改

    这意味着您可以复制和分发许可工作,但你不能以任何方式修改,或在原有的基础开发。

商业软件的使用要遵从CC协议的具体规定,最严格的许可证将是“署名,非商业,不能修改”的授权。这意味着你可以自由 共享的工作,但不能改变它,你必须把它归功于原创者。

 

Common Public License 1.0

Common许可证有一些细节性的规定值得参考:

  • 明确了专利授权。一般的开源软件都明确源代码的版权人将自己的修改权、复制权等版权权利向公众许可,但保留署名权,而Common许可证在此基础上还明确 假如源代码中含有专利权,源代码专利权人将复制、使用的专有权利向公众许可。
  • 规定可以将源代码及修改过的源代码与其他类型的不受本许可证约束的代码结合,以新产品的形式发布,只要其中经该许可证获得的源代码及修改过的源代码能按该 许可证的要求发布即可。
  • 细化了该许可证终止的情形,包括发生专利侵权诉讼。
  • 明确了一个独立承担责任的原则,就是假如按该许可证使用源代码的使用者将获得的源代码应用于商业使用,那么他就要对在商业应用中出现的由于使用该源代码程 序而产生的侵权诉讼承担完全责任。这一条规定是比较特殊的,绝大多数开源软件许可证都不这么要求。

商业软件可以使用,也可以修改Common协议的代码,但要承担代码产生的侵权责任。

分享到:
评论

相关推荐

    smart-license授权管理软件 v2.0.zip

    总体而言,Smart-License v2.0 是一个涵盖了软件授权管理、源码保护、教学实践和案例分析的综合性工具,对于软件开发者、教育工作者和学习者都具有很高的价值。通过深入理解和运用这个系统,可以提升对软件保护机制...

    golang开发的软件license单机版工具

    软件产品中一般会用到license进行对软件授权访问。本程序提供可对接开发的license授权。 本授权工具包括: 1.license校验程序(.dll/.so形式对接到产品中); 2.license生成客户端(GUI/shell方式); 3.客户计算机...

    可在线激活的软件license java实现源码

    如果用户想要把购买的license应用到另外机器上部署软件则本软件还提供了去激活后再重新激活的功能,满足常见软件授权场景。 适合需要license保护商用软件的开发者使用,提供源码可任意按需修改、移植,也可直接使用...

    python的License授权机制(csdn)————程序.pdf

    Python的License授权机制是软件开发中的重要组成部分,用于规定软件的使用、分发和修改条件。在Python中,开发者可以选择不同的开源或商业许可证来保护他们的代码,并决定用户如何与代码互动。以下是对Python ...

    软件许可证(License)设计方案

    软件许可证(License)设计方案是软件开发过程中的一个重要环节,它涉及到软件的使用、分发、修改和再分发等权利的定义与管理。一个合理的许可证设计方案可以保护软件开发者权益,同时确保用户能够合法合规地使用...

    Flowmaster软件授权license文件

    提供Flowmaster安装破解方法及文件

    License生成器(源码+客户端)

    自己开发的用于软件license授权的通用解决方案,可以用于自己的软件产品授权保护。源码部署到服务器,客户端用于生成license,生成的license结果服务器验证通过后才视为合法有效的license。

    SpringBoot 整合 TrueLicense 实现 License 的授权与服务器许可1

    在本文中,我们将探讨如何使用SpringBoot与TrueLicense框架进行整合,以便实现软件的授权和服务器许可管理。TrueLicense是一个强大的许可管理系统,可以帮助开发者保护他们的应用程序免受非法使用。 首先,我们需要...

    NBU 软件安装 带license

    NBU 软件安装带 License NetBackup 是一个专业的备份和恢复软件,由 Veritas Technologies entwickelt。它提供了一个集中化的备份解决方案,支持多种操作系统和存储设备。今天,我们将向您介绍 NBU 软件的安装过程...

    非常实用的License管理程序

    非常实用的License管理程序,可轻松集成至C/S架构及B/S架构的应用软件中,实现对软件产权非常好的保护作用,License通过对应用软件主机、IP、用户数及使用有效期等作为授权保护参数,其程序简述如下: 1、GsLicPKey...

    java web 软件授权管理

    此程序为java代码,实现了license生成与管理,代码结构清晰,注释齐全,十分适合,十分适合软件授权管理的学习和应用。

    C#软件授权、注册、加密、解密模块源码解析并制作注册机生成license

    软件一运行就把计算机的CPU、主板、BIOS、MAC地址记录下来,然后加密(key=key1)生成文件;2.注册机将该文件内容MD5加密后再进行一次加密(key=key2)保存成注册文件;3.注册验证的逻辑,计算机信息加密后(key=key1...

    西门子博图软件授权软件

    西门子工控博图软件的授权软件,针对博图V13-V17等不同的版本,对于西门子S1200PLC以及Smart200系列都有着很强的适应性!打开软件后,左侧目录选择自己使用的PLC类型,选中,点击长秘钥,全选中,点击授权就可以,...

    软件注册授权Licensemanger

    总的来说,“软件注册授权License Manager”是一个全面的解决方案,它利用CS架构、硬盘+CPU加密算法以及注册表技术,为软件提供商提供了一种强大且安全的手段来管理和保护他们的软件产品。ZCM作为其组成部分,进一步...

    Lattice厂家开发软件Diamond安装文件 License

    6. 重启软件,确认 License 已经生效,可以在软件中查看授权信息。 使用 Diamond 软件,用户可以进行以下关键操作: - 设计输入:通过 VHDL、Verilog 或者 Lattice 的特定语言(如 iCEcube2)创建 FPGA 项目。 - ...

    licensepp-master_C++_license_

    标题“licensepp-master_C++_license_”揭示了一个C++库项目,专注于软件许可和授权管理。这个库名为“License++”,是用C++编程语言编写的,其核心功能是为开发者提供一种抽象化的、安全的方式来保护他们的软件免受...

    ccs5软件安装license

    《CCS5软件安装License详解》 在嵌入式系统开发领域,Code Composer Studio (CCS) 是TI(Texas Instruments)公司推出的一款强大的集成开发环境,广泛应用于TI的微控制器和数字信号处理器的编程。CCS5是其第五个...

    license 生成license文件demo

    "license 生成license文件demo"这个项目主要涉及了如何创建和管理软件授权文件,这对于开发者来说是一个关键的实践过程。在这个过程中,通常会用到公钥和私钥加密技术,以及相关的编程示例(demo)。 首先,我们来...

    C# 机器码生成License

    1、获取本机的机器码 2、根据机器码生成授权码License

Global site tag (gtag.js) - Google Analytics