开放源代码软件的常见协议
LGPL许可证是LESSER GENERAL PUBLIC LICENSE的简写,也叫LIBRARY GENERAL PUBLIC LICENSE,中文译为“较宽松公共许可证”或者“函数库公共许可证”。
该许可证适用于一些由自由软件基金会与其它决定使用此许可证的软件作者所特殊设计的软件软件包─比如函数库(即Library)。
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许可证的基本要求是获得源代码、修改源代码,并可将修改从原始代码中分离出来;修改可以按照作者的意愿被组合到新版本中;二进制代码可以和原始代码同名,这一点对于动态连接库来说尤其重要;任...
什么是开源?
展开全部 不过在程序界更多人习惯把它理解为“开放源代码”的意思。
在计算机发展的早期阶段,软件几乎都是开放的,任何人使用软件的同时都可以查看软件的源代码,或者根据自己的需要去修改它。
在程序员的社团中大家互相分享软件,共同提高知识水平。
这种自由的风气给大家带来了欢乐,也带来了进步。
但不久之后,以微软为主的一些商业公司就破坏了这种风气。
这些商业公司从自由的计算机社团里雇佣了大量的技术高手,开发带有知识产权保护的专有软件。
他们在分发软件的时候也不再附带源代码。
从此,专有软件的时代到来了。
直到现在,专有软件不公开源代码仍是默认的行业潜规则。
即使这样,崇尚自由的斗士们也没有妥协。
他们认为,数字时代本应是自由的,任何人都可以自由的获取软件资源及其源代码,而不应该被少数商业公司所控制。
因此由Stallman为领袖的一群富有激情的技术高手们发起了自由软件运动,创立了“自由软件基金会”,即FreeSoftwareFoundation(FSF)。
FSF颁发了GNUGPL通用公共许可,GPL明确定义了自由软件的含义,即用户拥有使用软件、修改软件、重新发布软件以及改善再利用软件等四种自由,作为前提的,自由软件必须公开所有的源代码。
GPL成为自由软件世界中的最高精神纲领,它成功地创建了一个软件中的自由王国,并保证开发者、用户都拥有充分的自由权。
另外,在自由软件的世界中,根本就不存在盗版的概念。
“自由软件”的英文是“FreeSoftware”,这不免为许多人所误解,人们经常把它和“免费软件”连系在一起,免费的恰恰都是些低级的,这使得自由软件蒙上了一层阴影。
于是大家决定给自由软件一个更易理解的别名“开源软件”。
开源一词则由此得来。
所以,开源即是自由的化身。
它讲述了一种公开的、自由的精神。
软件开源的发展历程,为我们软件行业以及非软件行业的人都带来的巨大的参考价值,...
哪种开源许可证下的软件可以用于商业
哪种开源许可证下的软件可以用于商业开源的软件大家应该不会陌生,它帮助我们可以迅速的了解一个技术的实现过程。
并且可以加快我们的开发速度。
但是不同的开源软件遵守各自的许可证协议,有些开源软件是不能用作商业用途的。
经过Open Source Initiative 组织通过批准的开源协议目前有60多种,那么哪种许可证下的开源软件可以用于商业,哪种又不能呢?下面就我个人的理解做个介绍。
下面这个博客介绍的非常详细:http://univasity.iteye.com/blog/1292658拜读了上面这个链接的博客后,我总结一下:Apache License 2.0要点:Apache Licence是对商业应用友好的许可。
使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
BSD开源协议(Berkerley Software Distribution)要点:商业软件可以使用,也可以修改使用BSD协议的代码。
GPL ( GNU General Public License )要点:商业软件不能使用GPL协议的代码。
LGPL ( GNU Library or "Lesser" General Public License )要点:商业软件可以使用,但不能修改LGPL协议的代码。
MIT ( MIT license )要点:商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。
MPL ( Mozilla Public License 1.1 ) 要点:商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。
CDDL (Common Development and Distribution License ) 要点:商业软件可以使用,也可以修改CDDL协议的代码。
EPL (Eclipse Public License 1.0 )要点:商业软件可以使用,也可以修改EPL协议的代码,但要承担代码产生的侵权责任。
从上面的总结看出来,只有GPL许可证的开源软件是不能作为商业用途的,其他虽然有限制但是也是可以的。
所以如果你要为一个商业软件寻找一个开源的软件工具,那么就不要找GPL许可证下的软件。
如果使用了,在产品商业化的时候就会遇到麻烦。
软件为什么要开源
开源软件有许多好处,总结起来,最重要的有三点。
首先,开源软件对用户的权利保护得更充分一些。
举例来说,如果有一天微软公司不复存在了,那么 Windows、Office 这些本来由微软公司负责维护的软件很可能由于没人维护下去而被淘汰,但开源软件却不存在这样的问题,开源软件不会因某个人不存在而变得停滞不前。
用户曾经花费巨资购买的 386、486 微机,现在却只能作为一堆废品来处理,原因就在于缺乏性能优异的应用软件来持续支持,但功能强大的自由软件却可以在这些 386、486 微机上跑得很好。
其次,开源软件由于发布很广,开源软件的问题更容易暴露出来,这使得当这些问题解决以后开源软件就变得更加完美。
最后,开源软件对用户个性化的需求更容易满足。
由于软件过多地引进了工程化管理,使得软件的标准化程度越来越高。
这固然可以增加软件的开发效率,但却使得人们都需要按照一个模式去操作软件。
正常人使用着很方便的软件,左撇子使起来就很别扭。
随着手机、PDA 等新产品的出现,这种个性化的需求会表现得更加强烈。
开源软件由于源代码是公开的,所以这些个性化需求更容易得到满足。
软件不能单纯用工程表现,在这个问题上,开源软件的开发方式给了人们很深的启示。
共创软件联盟的刘澎则指出,开源文化是人类几千年的智慧结晶,是一种必然的历史发展趋势,这种发展趋势是谁也阻挡不了的。
今天,已不可能有人会否认互联网所蕴含的价值,但人们有没有注意过互联网发展初期是一个什么样子呢?几十年前的互联网只是具备了一些核心的协议,应用价值也并没有显现出来,但这根本不会妨碍互联网发展成今天这个样子。
互联网在发展初期实质上就是一种开源的形式,今天的开源软件与此非常类似。
发展趋势本身就具有一种力量,Windows 之所以应用得这么广,在于它符合现代操作系统的标准。
现代操作系统的标准就是一种趋势,Linux 也符合这些标准,这使得 Linux 也将注定成为了一种优秀的操作系统。
刘澎同时认为:“目前开源软件的发展进入到了一个低谷的时期,这其实是开源软件发展的必经阶段。
因为开源软件的商业推广模式在创立初期就出现了问题,所以才有今天的发展低谷,可见这个低谷并没有超越于发展趋势之外。
我们在二十世纪九十年代中期就采用开源技术解决了路由技术,这个项目在商业上也获得了巨大的成功。
事实上,国内有许多开源项目,如 Hopen 等,都做得非常成功。
因此,面对暂时的困难,就认为中国无开源,认为开源没有希望,是一种敷浅的表现。
中国工程院院士倪光南指出:“从产业层面看,以 Linux 为代表的开源软件增强了我国软件业讨价还价的能力,并且使得软件的市场空间增大了。
我们必须看到,国产 CPU 必须有 Linux 支持,否则就会因使用范围太窄而不能投入实际应用。
” 开源的本质 在许多人眼中,开源就意味着只有付出而没有任何回报,然而,开源的本意却是“ When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves ”(只要程序员对软件的某一部分实现阅读、重新分发和修改代码,即可称作开源)。
既使是要求极为严格的GPL协议,也仅要求使用GPL源码这个部分开源,而 BSD 协议则仅仅要求在 End User License 中,保留原来的协议就可以了。
由此看来,开源软件同样可以做到“别人怎么赚钱,我们也怎么赚钱”,开源与商业利益并是完全对立的。
在国内保障体系还不完善的情况下,国内的软件公司和程序员完全可以利用开源软件解决吃饭和生存的问题。
而开源软件也并不只包含 Linux 这样的系统软件,目前热门的 ERP、CRM 乃至知识管理、商业智能同样可以基于开源软件开发。
对程序员个体而言,加入开源社区也并非一无所获。
国外许多程序玩家通过社区的锻炼获益匪浅,功成名就者也不乏其人。
国内的软件工程技术人员参与过大型开发项目的少而又少,中软 COSIX 项目尽管归于失败,但通过这个项目培养出来的参与过大型项目开发的人员已被几大外资软件公司瓜分殆尽。
而现实的问题却是,一方面程序人员抱怨没有项目可供练手,另一方面却又不愿加入开源社区得到锻炼。
无论国内的程序员有着什么样的想法,开源社区却绝对不失为获得大型开发项目经验和扬名立万的良好场所。
对软件公司来说,开源还是增加软件需求的好方法。
软件发展到今天,由于过多地引入了工程方法,使得软件越来越趋于标准化。
对个人用户而言,同样的软件,用惯右手的人使用起来得心应手,然而左撇子用起来却怎么使怎么别扭。
而对企业用户而言,管理软件的使用必然伴随着管理方式的变化,然而,并不是说管理软件带来的总是适合用户的管理变革,这时用户就会提出系统必须要和管理实现互动的要求,显然,开源软件处理这类问题更为方便。
与国内软件公司远离开源的情况相反, Sun 公司把 Solaries 操作系统的源代码毫无保留地公开给了业界,微软也已宣布将把投入巨资开发的 Windows CE 的 70% 的源代码以 5 美元的象征性价格出让给业界。
微软公司和 Sun 公司当然明白这样做带来的好处,...
开源操作系统是什么意思
开源的意思是安卓系统的源代码是面向用户开放的,可以遵循开源协议(GNU)进行使用、编译和再发布。
在遵守GNU协议的前提下,任何人都可以免费使用,随意控制软件的运行方式。
最著名的开源操作系统是linux。
开源系统相对于不开源的操作系统,如Windows和Mac,开源操作系统最大的特点就是开放源代码和自由定制,但也会因为使用者的技术水平等关系出现很多不可预知的情况及维护问题,并且由于多数硬件和软件厂商并不支持开源软件.所以在驱动和软件源方面有很大困难,这就要求个人用户在选择系统时需要注意根据自己的实际情况来选择,这也是目前个人使用开源操作系统较为困难的最主要原因。
开源系统的分类:Unix-like类:Linux(这一族开发者众多,发行版本以千计,覆盖所有平台,并支持所有文件格式和所有网络协议)、FreeBSD、OpenBSD、NetBSD(覆盖所有平台)、DrangonflyBSD、Darwin/OpenDarwin/PureDarwin、Minix、GNU Mach/GNU Hurd、L4/Fiasco/Pistachio、syllable、禅OSUnix类:Opensolaris、AuroraUX、Plan9、Inferno – Plan 9。
dos类:Freedoswindows-like类:ReactOS原创类:House、KolibriOS、MenuetOS、HelenOS、Openvms还有其他的开源操作系统有:XFree86、ReactOS。
常见的开源协议都有哪些
本文主要是针对几种开发者常见的开源软件协议的分析与介绍。
Mozilla Public License MPLLicense,允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。
这种授权维护了商业软件的利益,,它要求基于这种软件得修改无偿贡献版权给该软件。
这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。
但MPL是允许修改,无偿使用得。
MPL软件对链接没有要求。
BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。
可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD代码鼓励代码共享,但需要尊重代码作者的著作权。
BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。
而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
Apache Licence 2.0 Apache Licence是著名的非盈利开源组织Apache采用的协议。
该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
需要满足的条件:1. 需要给代码的用户一份Apache Licence2. 如果你修改了代码,需要再被修改的文件中说明。
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。
你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。
使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
GPL GPL许可证是自由软件的应用最广泛的软件许可证,人们可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。
必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。
您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。
LGPL Linux就是采用了GPL。
GPL协议和BSD,ApacheLicence等鼓励代码重用的许可很不一样。
GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。
这就是所谓的”传染性”。
GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似 Public Domain 公共域授权。
将软件授权为公共域,这些软件包没有授权协议,任何人都可以随意使用它。
zlib/libpng 只要不误传该软件的起源并保留原始发布的公告,任何人可以以任何目的使用该软件,包括商业应用 Artistic许可使作者保持对进一步开发的控制。
MIT MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制。
也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。
php是开源的程序,所谓的开源指的是哪些地方,不开源的有哪些?
与你这个使用者关系不太大,开源指其许可协议 (license)。
php使用的许可协议是类似BSD的,还有个比较常使的叫GPL。
我先说GPL比较好,GPL是个限制性很强的开源license。
一旦用GPL发行软件,则必须带有源代码。
允许软件使用者修改源代码,修改后可重新发行,但必须继续以GPL做许可协议,并且一定也要带有源代码。
“发行”不一定是免费的。
BSD license关键特点在于完全免费,也可以修改源代码后发行,可以不再以BSD协议发行,使用上几乎完全自由。
你可以看到两者的一些区别:BSD的软件被修改后不再以BSD许可协议发行,因此可以不带源代码,用户不能再修改了,往往被直接用作商业用途。
有很多商业例子,像mac os x就是使用FreeBSD的内核,加上苹果自己的图形系统。
GPL的软件强制性要带有源代码,其修改后的产品也只能用GPL继续发行,确保以后的用户有修改的权利,也确保了用户不能将别人的代码“据为己有”。
GPL软件其实是可以卖钱的,最少可以卖出一次。
但“再发行者”要免费,原始作者也没办法阻止。
你作为php的使用者,你用php生产产品,不带有php这个工具的一部分,所以不属于修改php的源代不开源部分就是,你使用php开发出一套产品,你可以不开源,但是php是解析型语言,代码是可以看见的
android (安卓)是完全开源的吗?
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
1. Android是一种Linux内核的手机操作系统。
Google希望,这会吸引来第三方软件开发者,建立起一个大规模的开发者社区。
2. Linux内核的许可证,是自由软件基金会的GPL许可证第二版。
但是,"开放手机联盟"的主要代码,却是Apache许可证(ASL)第二版。
3. ASL许可证被开源软件广泛使用,并且得到了"开放源码促进会"(Open Source Initiative)的认可。
它是一种不设限的许可证(permissive license),允许软件的商业性开发和垄断式发布。
以ASL发布的代码,可以被合并入闭源的专有软件(proprietary product),并且在各种各样的限制性条件下发布。
4. 与ASL不同,GPL则是一种Copyleft许可证。
它对代码的发布做出了限制,规定所有对源码的修改和衍生,都必须公开,并且以相似的许可证发布。
5. 许多软件公司更愿意采用不设限的许可证(比如ASL和BSD),因为这使得它们既可以使用开源软件,又不用向开源社区公开对软件所做的修改。
所以,ASL和BSD鼓励了开源软件的商业性使用,使得软件公司愿意对开源软件投资,因为这些公司可以从中获利。
这种在开源基础上吸引商业投资的潜力,很可能是Google为自己的手机平台选择ASL许可证的最大原因。
将Android置于ASL之下,可以确保许多商业性公司会接受这个平台,并且在它上面使用自己的专有技术。
6. 虽然ASL确实是保证Android获得支持的最好方法,但是批评者认为,Google这样做的代价,是丧失了创造一个更开放的手机软件平台的机会。
如果Android的许可证是GPLv2,那么在它上面做开发的那些公司,将不得不公开对系统所做的改进,理论上就会导致代码被更广泛地分享,因而手机软件的开发也会更快速地进步。
7. 另一些人不同意这种看法。
他们认为如果Android选择copyleft许可证,会使商业性公司不愿意介入开发,从而使系统本身的发展困难重重。
如果那些公司没有办法保护自己的专有技术不公开,那么即使它们愿意采用Android平台,也必须急剧地改变经营模式,而这是有风险的。
8. 有一点是不能忽视的,那就是只有Android的userspace部分是ASL许可证。
系统的内核依然是GPLv2许可证。
而运行在系统上方的第三方软件,可以用任何许可证发布,包括商业性许可证和copyleft许可证。
9. 还有一点也很重要,那就是虽然ASL与GPLv2不兼容,但是它与GPLv3完全兼容。
这意味着,在ASL下发布的代码,可以被用于GPLv3许可证的软件。
因此,程序员可以选择将Android程序在GPLv3下发布,这样就能保证他们作品的进一步开发,将始终是开源的。
protecode 软件好用吗
分析文件还是可以的,不过不支持代码片段扫描,所以扫描的精确度不是很好。
其次,扫描速度不是太快,现在用fossid的更多些,对于license、copyright、文件、代码片段、漏洞分析效果很不错,使用起来比protecode更简单,扫描速度提升了几十倍。
转载请注明出处51数据库 » 开源软件license是什么