近期极少数个别人在网上打着开源反开源,搞开源虚无主义,现将近6年前编撰的开源ABC小册子中的部分内容贴在博客中,以供探讨!
1、 什么是开源软件(OSS)?
开源软件即开放源代码软件,其定义首先起源于自由软件(Free Software)。自由软件出现之前的规则是软件开发商拥有软件源代码的专用权,他们牢牢控制了源代码,只有他们才有特权访问源代码,用户和其他程序员无法查看、改动和完善,使用户无法真正融入计算机环境之中。Richard Stallman 倡导自由软件运动,就是要开发出一系列完整的软件,由原作者对自己的一些知识产权的权利进行放弃,具体说应该是向公众的许可,同意不但开放源代码,而且鼓励用户之间互相拷贝,通过网络在线服务,电子公告板(BBS)的发布,或者从一个用户的手里传给另一个用户等途径自由地传播,并借此获得学术上和技术上的交流,让别人修正和改进源代码并接受自由软件运作规则,再重新发布。用这种模式去激发世界各地的软件开发人员投入到自由软件的开发中,软件开发人员的集体智慧得到充分发挥,人们可以及时发现并解决程序中存在的问题,减少大量不必要的重复劳动。
2、 什么是自由软件(FS)?
自由软件是指允许任何人使用、拷贝、修改、分发(免费/少许收费)的软件。尤其是这种软件的源代码必须是可得到的。从某种意义上说,“没有源代码,就称不上是(自由)软件。”自由软件很少标价出售,可以理解为一定程度的免费。但有时软件公司在提及价格时使用“free software”这个字眼,他们的意思可能是你可以免费获得一份二进制代码的拷贝,也可能是在你所购买的机器中已经包含了一份拷贝。但是,这种说法与在GNU 计划中“free software”的意义是不同的。由于在操作中极易混淆,因此一旦软件公司说他们的软件是自由软件,您一定要检查您是否得到了自由软件所应包括的一切。有时,您得到的是自由软件,有时不是。
3、 “开源软件OSS”与“自由软件FS”的关系
这两个名词实质是从两个角度看待同样一类事物,对同一类软件的不同叫法,突出不同的价值取向和精神。二者的差别在于给出定义的角度不同。“开放源代码软件”(Open Source Software,也有译为“公开源代码软件”)的定义是从技术层面上讲,而“自由软件”则是从被许可的权利层面上讲。至于自由软件和开放源代码软件的区别,实际体现的就在于许可证对权利义务的规定的严与紧的程度上,有学者认为,开放源代码软件许可证中那部分对被许可人权利限制比较严的许可证是自由软件许可证,也就是说,开放源代码软件的范围要稍宽一些,自由软件的许可证中不允许被许可人将本许可证许可的源代码的修改版本、演绎版本以其他的许可证方式再许可或者保留起来不许可,只能按此许可证实施再许可,像自由软件联盟GNU 下适用GPL开放源代码软件许可证的软件。而开放源代码软件的许可证则允许以其他许可证的方式实施再许可。
4、 什么是商业软件(Business Software)?
“商业软件”(Business Software)是指通过交易或贸易方式面向社会公众发行的各种商品化的软件。作为商业软件,其功能、性能通常已经过严格测试因而相当可靠,其使用方法应该相当便利。供应商不仅应该向用户提供程序(通常是目标码文本)和使用说明(通常是
手册的形式),而且应该向用户提供包括版本更新在内的技术服务。
5、 开源软件与商业软件是什么关系?
商业软件由商业公司开发,通过收取使用费而牟利。“商业”和“私有”不是一回事。大多数商业软件是“私有的”,但也有商业自由软件,也有非商业、非自由的软件。
例如,GNU Ada 永远在GNU GPL条款下进行分发,而且,每一个拷贝都是免费的,但它的开发者却有付费支持合同。当推销员对用户这样说,有时用户回说,“我们觉得商业编译器比较安全一些。”,推销员则回答,“GNU Ada是商业软件,只不过碰巧它也是一个自由软件。”
对“商业”的含义可能存在不同理解,但可以确定的虽然开源软件本身可能不会带来很大的收益,但是利用开源软件的商业模式的确可以实现商业利益,提供了源代码以外的服务等客户所需的要素就可以获得持续、稳定的商业利益。
6、 什么是私有软件?
“私有软件”(即Proprietary Software,或称“专有软件”),是FSF 将其作为“自由软件”和“非自由软件” 的对立面而对软件作出的分类。 FSF 对私有软件的解释为:
私有软件不是自由及非自由软件,对它的使用、传播、或修改是禁止的,要么需要你申请许可,要么它限制你不能充分自由地使用它。自由软件基金遵守规定,不在计算机中安装任何私有软件,除非为了编写那个程序的替代品而暂时安装到计算机上。除此之外,我们找不到其他借口要安装私有程序。
例如,在80 年代,我们认为在计算机安装Unix 是正当的,因为我们要编写一个Unix 的免费替代品。现在,由于有了自由操作系统,因此这个借口就不再使用了;我们消除了所有的非自由操作系统,任何新计算机上安装的都是自由操作系统。我们不能强迫GNU 的用户或GNU 的贡献者必须依此规则行事;它只是给我们自己制定的规则,但我们希望你能下决心遵从它。
7、 什么是公有软件?
所谓“公有软件”(Public Domain Software,也可译成“公有领域软件”)是指著作权中的经济权利(包括复制权、修改改编权、发行权等专有权利)有效期已经届满的软件,以及权利人由于不准备使之商品化而已经明确声明放弃著作权的软件。需要指出,公有软件不同于开放源代码软件,因为对于开放源代码软件而言,其著作权仍然由其权利人享有,受到著作权法规保护。对于公有软件,其特点在于:(1)人们可以任意复制、传播;(2)人们也可以对公有软件进行反汇编或者反编译,可以进行反向工程;(3)人们可以使用、改编、甚至将之纳入为赢利目的而开发的商业软件,但不得限制其他人也这样做。这类软件的知识产权被用尽的或放弃任何知识产权的软件,因其进入了公有领域(public domain),没有任何人可以对其请求任何的权利。
8、 什么是共享软件?
试用软件(Share ware,国内也往往译成“共享软件”)。它比普通的商业软件要便宜得多。所谓“试用软件”,是指其复制品也可以通过网络在线服务、电子公告板(BBS)或者从一个用户的手里传给另一个用户等途径自由地传播。这种软件的使用说明通常也以文本文件的形式同程序一起提供。这种试用软件通常附有一个用户注意事项,其内容是说明权利人保留对该软件的权利,因此试用软件受著作权保护;本软件居于试用软件,用户通过两个阶段试用之后,如果希望继续使用,就应该向供应者办理使用注册手续。用户注意事项中通常包含一份注册表格,并说明如何以及向何处办理注册手续,在办理注册手续时可能会要求用户交纳一定费用,实际上就是使用许可费,需要交付的使用许可费的款额通常是很低的(几美元或者几十美元)。
9、 开源软件与免费软件的关系如何?
对免费软件通常的理解是不必支付费用就可以免费获得使用权的软件。而恰巧开源软件在多数场合被称作“Free software”。在许多语言中,“free”一词有两种意义:一是自由,二是免费。如法语的“libre”和“gratuit”,英语的“gratis”都明白无误地指价格(免费),但没有明
白无误地说明“自由”的意义。这是不幸的,因为如果有这个词,在此处它将非常有用。
开源软件通常以免费方式发布,大部分开源软件可以免费获得。但是只要开源软件的许可人或再许可人愿意,可以收取费用。开源是不排斥收费行为的,而免费软件一定是免费获得的。同时免费软件可能是专有软件,只授权免费使用,但不开放供源代码。因此,开源软件与免费软件是两个不同层面的概念,需要区别对待。
10、 如何理解“Free Software”的“Free”?
这里的Free有两个含义:
第一层含义是自由。自由软件模式为开发者提供了将个人智力成果以不同传统的方式贡献给公众的自由,并保证这种自由符合法律的要求;同时自由软件没有妨碍并且为公众提供了额外的、选择的自由。开发者自愿地将其对于软件的自由权利授权给其他人,保证了更多人享受到使用软件的自由。
第二层涵义是一定条件下的免费。由于自由软件的授权模式不强制免费许可也不强制收费许可,因此,对于已经进入社区(流通领域)的开源软件而言,获得这些软件大都不必付费。了解哲学观念中“没有绝对的自由”是理解这个概念的一把钥匙,开发者和用户的“自由”都是建立在符合法律和协议要求的前提下的自由;“天下没有不要钱的午餐”这句话的道理不在于这个午餐是不是一定要付钱,而是说是不是要有代价,“免费”获得开源软件也是一样道理。
总之,“自由”和“免费”都是附有条件的,这个条件就是协议(合同)规定的“对价”,自愿地履行开源协议的“对价”不存在对合同任何一方造成损害,不过可以确定的是,如果不履行“对价”,合同就可能不成立,这显然对合同双方都没有好处,不能实现订立合同的宗旨。
11、 什么是“开放源代码”?
OSI 给出开放源代码的定义的目的是:把所确信的、由软件开发团体所公认的“开放源代码”的含义作为一组具体的准则写下来。该准则确保按照开放源代码许可证发布的软件可以得到与其他软件同样认真的评审、使软件可以不断地得到改良和遴选,从而提供非开放软件所难以提供的可靠性与能力。OSI 认为本开放源代码定义涵盖了由绝大多数软件团体使用的术语“开放源代码”的最初含义和当前含义。然而,该术语被广泛地应用,并且它的含义变得不精确了。
12、 “开放”源代码就是“公开”源代码吗?
以微软为代表的“共享源代码”(Shared Source)的实质是仅仅公开源代码(且非全部公开)。这是微软为应对“开放源代码运动”而提出的新策略,它与OpenSource最大的不同在于,微软向他的大客户拷贝其绝对机密的Windows 源代码,但用户只能看或提出修改意见,而不能对它有任何修改。
开放源代码与公开源代码的相同之处是二者都保证源代码被公开,即源代码以某种方式为人所知悉。但“开源”与“公开”源代码存在根本的查差别。开源软件的许可人不仅仅提供源代码以供其他人参考,同时还许可其他人可以将软件运行、修改和再授权。更直白的解释就是“公开”源代码只能“看”,“不能用、不能改、更不能再发布”;而“开放”源代码不仅能看,还“能用、能改、能再发布”。
13、 为什么开发者需要了解软件的知识产权?
知识产权是法律赋予人们对智力劳动成果所享有的民事权利。知识产权对软件的创造者而言,可以将知识产权理解为开发者可以在一定期限内对软件享有的独占权或专有权和软件开发者依法享有的其它权利。显然,开发者对成果的独占使用权可以带来各种收益,因此软件不仅是程序员所创造出来的成果,而且是企业的一笔财富。如何使管理和使用软件的知识产权,实现其价值最大化是开发者和企业都关心的问题。开发者可以将自己的智力成果进行各种形式的处理。比如公开软件、出售软件、甚至是将其进行销毁都是开发者的自由。这些自由都是法律所赋予的,其中知识产权法是非常重要的一部分。开发者经常忽视知识产权对自身的价值,多半是由于其将法律给予的自由视作与空气、阳光一样理所当然、天经地义。事实上,不管开发者是不是注意到知识产权法的存在,他的智力成果始终处于法律的保护和管制之下。开发者准备对自己或他人的智力成果进行任何处理之前,都应该考虑该行为是不是符合知识产权规则的要求。
14、 软件相关知识产权主要有哪几类?
最初的知识产权多涵盖的内容比较窄,主要包括版权、专利权和商标权。后来出现一些新型的知识产权,如地理标记权、集成电路布图设计权等等。当然与软件和软件产品关系最密切的还是版权、专利权和商标权。
15、 没有登记的软件受著作权法保护吗?
开发者大多知道软件可以通过申请著作权登记得到保护,实际上,软件从它诞生的那一刻起就已经受到版权法的保护。不管一个软件是不是申请了著作权登记,软件作品的作者都可以对侵犯其著作权的行为采取措施。例如,某公司的软件作品没有进行著作权登记,但是当有人非法复制这个软件时,该公司仍然可以通过法律手段追究非法复制者的责任。16、 在中国有没有软件专利,商业方法软件专利又是什么?关心软件产业的人们都注意到欧盟在2005 年没有通过软件专利法案,但美国的做法对国际规则大趋势的影响力也不得不考虑。即便没有专门的软件专利立法,软件的专利问题依然存在。“凝固”在产品中的软件专利已经为国内很多软件企业所认识。商业方法软件的专利保护最初也是从美国发起的。商业方法软件专利在美国、欧洲和日本的申请和授权十分火爆。中国国内的反映比较消极,企业对商业方法的专利申请尚处在无知状态,专利局的审查指南和政策也没有针对性的反映,专利代理服务机构多是在忙着为外国的申请进行代理。目前,中国涉及到商业方法的软件专利不多,而国外银行以及网络公司在中国申请的有关电子商务方法的专利已经覆盖了中国金融业的基础服务。
17、 软件产品为什么需要许可协议?
我们可以将软件理解为特殊的文字作品,只不过这些文字可以通过一定方法让计算机也可以读懂。作者根据著作权法的规定对作品享有一定程度的独占权,如果作者愿意让其它人共享自己的权利或其它人希望使用这个作品,就必须通过作者对他人进行授权,或者叫做许可。软件产品的所有者有对产品的独占权,包括使用、收益、署名、修改等等内容。如果用户希望合法地使用这个产品就必须获得许可。这个许可可能来自法律的强行规定,例如“合理使用原则”,尽管软件的所有者内心可能十分不情愿;这个许可还可能来自所有者,可能是收费的许可也可能是免费的许可。因此,许可协议也是用户合法使用软件作品的一个凭证。相当于在许可人与被许可人之间签订一个合同来规定双方当事人的权利和义务。通常,这个协议的内容是由许可方拟定的,被许可方和用户只能选择接受或者不接受,因此是一种格式化的合同。
18、 发布开源软件需要许可协议吗?
开源软件与传统软件都是智力成果,在决定以何种方式发布之前,在技术层面是没有任何差别的。不管是封闭源代码还是开放源代码,都是软件的发布者所使用的许可方式的一个内容或条款。许可证的内容可以差别很大:如传统软件许可证只许可用户使用软件但不允许用户再发布软件,同时为许可证的获得设定一些条件(例如收取许可费);如开源软件许可同时许可用户可以再发布软件,同时还对再发布的条件进行了一系列限制(例如GPL 许可协议规定不得使用其它许可证再发布,BSD 协议规定要保留作者的署名权);甚至发布者可以不选择或使用任何许可证、放弃任何对软件的任何权利,许可给其它人最大的自由。然而,就算是这样,还是应当理解为发布者与其他人达成了一个“该软件可以随意使用”的协议。显然,所有的软件作品都是需要许可的,开源软件的发布者对软件如何被使用还有各自的期望和条件,因此发布开源软件必然需要许可证,只不过许可的内容可以由发布者自己决定。
19、 使用开源软件需要获得许可吗?
开源软件虽然公开了源代码,使公众可以非常容易获得软件,与传统软件许可“先获得许可再获得软件”的模式有所差别。但使用开源软件仍然需要获得许可,因为开源软件也是软件作品,对其处理也必须符合著作权法的规定。这就是开源软件世界许可证存在的必要。开放源码软件是受到著作权的保护的作品,因此未经权利人许可不能随意使用。因此使用开源软件就一定要获得许可。如果没有获得许可就使用开源软件,就是侵犯了作者的独占权和专有权。多数人没有注意到许可的存在,是因为许可的成立并不是以传统的签字画押、点击“接受许可”等方式进行。开源软件的许可是在运行它或修改它或发布它的那一刻就马上生效的。开源软件的许可协议是一个开放的,只要有相应的行为就理解为默认接受的许可。当然,接受协议的前提条件还是有的,在许可证文本中讲得很清楚,一旦被许可人没有遵守这些条件,许可可能随时会被终止。许可一旦被终止,这时持有开源软件的人就没有权利使用它并且需要承担违约的责任。
20、 为什么存在诸多开源软件许可证?
软件的所有者对于如何处理其创作的软件都有各自不同的想法。对于授权给被许可人权利的大小存在不同的考虑。许可证是许可人和被许可人之间的合同,如同其它商业合同一样,通过不同的条款约定用于实现不同的目的。例如,GPL许可证通过严格的copyleft条款最大限度地保障软件的自由,并由此实现“消除计算机程序在复制、分发、理解和修改方面的限制”这一FSF 的初衷;而MPL 通过将“发布”定义为“以源代码方式发布的文件”,因此为借鉴别人的源代码用作足迹的商业软件开发的行为留下一个豁口。
21、 开发者是否可以自己创造一个许可证?
当然可以。如果某个人或者组织开发了一种新的程序,这个程序又没有受控于任何已有的许可证,这个开发者就可以选择已有的许可协议或许可协议模板进行修改发布自己的软件。当然,如果开发者认为现有的许可证都是不理想,他就可以自己编写新的许可证,他可以将自己价值取向体现在对许可人和被许可人的权利和义务的不同规定中。也可以将许可证提交OSI进行认证,获得目前比较通用的证明,从而表示出遵循这个新的许可证的软件是开放源代码软件。
22、 一个软件是否可以适用多个许可?
可以,只要这些许可证之间不发生实质性的冲突。以前开发人员必须考虑的只是软件的依赖性和不兼容性,现在他们还得考虑开源软件项目之间许可证的冲突。如:Mozilla 包含四个不同的许可证。参与该项目的开发需要注意许可证间的冲突。Galeon 是一个基于Mozilla的浏览器,利用GPL下发布的GTK+图形工具包开发。对其的分发将在分别受MPL和GPL保护的模块间产生冲突。同样,Transarc(IBM 子公司)以IPL许可开发了一个Linux 分布式网络文件系统的变体。不幸的是IPL 与GPL 不兼容,因而禁止其在Linux 内核上运行。另外,对源代码的每个错误修正和改动,都具有“分叉”出一个新版本的潜在可能。
23、 开源软件许可证带来的纠纷可能有哪些?
(1) 发布软件时未表明版权信息以及必要的修改信息;
(2) 发布软件时没有附上相应许可证;
(3) 源代码提供不符合许可证的要求;
(4) 违反许可证的规定将软件代码与其他代码混合;
(5) 发布软件时违反许可证的规定收取不适当的费
用;
(6) 违反许可证的规定以开放源码软件申请专利。
24、 开源软件许可证有什么共同特点?
许可证的共同点一般都是规定了发布义务(将获得的源代码再发布)、对发布源代码的要求(须保证源代码的完整和可以被获得)、允许修改的权利(可以根据获得的源代码产生演绎作品)。一般开源软件许可证都不定补担保条款和责任免除条款。
(1) 开放源码软件许可证都会规定在被许可人接受本许可证或的源代码之后,有将源代码再发布的义务,以促进开源码运动。
(2) 开放源码软件许可证有“不担保”(No Warranty)条款。由于源码程序准予免费使用,在一般情况下,对程序都没有担保。
(3) 开放源码软件许可证都规定了关于修改、复制和再发布的条款。但是各个许可证对授予被许可人的各项具体的权力略有不同。
25、 不同开源软件许可证之间差异在哪里?
开源软件许可证之间的差异主要体现在:
(1) 是否允许可以同其他非开放源码软件代码混合;
(2) 是否可以将对源代码的修改不公开;
(3) 是否明确了专利许可授权;
(4) 是否明确了专利侵权诉讼导致许可协议中止;
(5) 是否明确禁止与函数库连接;
(6) 是否只能按本许可证发布源代码;
(7) 是否要求对于获得的源代码可能存在的知识产权进行以“LEGAL”为抬头的提示。
26、 主要许可证的之间有哪些关键差别?
(1) BSD 许可——它要求版权和著者身份申明;
(2) GPL——通用公共许可("CopyLeft")禁止派生或发行产品的限制;
(3) LGPL——库/次级GPL,它不同于GPL许可证,在这个许可证下,库(函数库)可以自由地联接到专有软件;
(4) Artistic 许可——使作者保持对进一步开发的控制。
(5) Netscape 公共许可(NPL)——基于GPL 精神的新的许可证,但是保持了对源码更多的控制和所有权;
(6) 公共域(Public Domain)——通常用于决定性的算法以鼓励广泛使用,通常由美国政府使用。
27、 许可证之间的规定存在冲突怎么办?
国际上较为严格的许可证主要是GPL 许可证、QNCL许可证和Ricoh 许可证三种,其他的均被认识是比较宽松的开放源码软件许可证。来自于不同许可证的程序源代码想要结合起来就会产生许可证之间规定的冲突问题。实际上,主流的开源软件,尤其是开源平台LAMP(Linux, Apache, MySQL, PHP/Perl/Python),都是依照GPL发布的。而GPL又是一个要求严格的许可证,所以冲突主要是不同许可证与GPL 许可证之间的冲突。一些开源许可证要求当出现程序之间的连接、或者程序修改时,如果出现了组合作品,则要求连接各部分都受该开源许可证限制,也就是必须成为指定的开源软件,是容易产生问题的地方。对于冲突的问题,现在我们能做的就是尽量避免。
28、 OSI与开源许可证是什么关系?
答:OSI 组织也即“开放源代码首创行动组织”(Open Source Initiative,简称OSI),这是一个非盈利的组织,Open Source Initiative、OSI等标志都是属于该组织的证明商标,统称为“OSI Certified”标志,由OSI组织作为证明商标的管理者。OSI组织的宗旨就是要让开源软件的发展有一个更好的土壤,OSI主要管理和推广开放源码的定义,尤其是OSI认证的开放源码软件的认证标记和认证程序。根据OSI组织的规章,是否是开源软件,不光要看权利人是否提供源代码,另外一个很重要的标志就是许可证的问题,因为基本所有的开源软件在发布时都会附带一个许可协议,即我们所说的许可证,在许可证中,会规定许可人和被许可人的权利与义务,而正是这些权利和义务,决定了权利人是否将源代码真正的向社会公
众开放,从而可以实现是否是开源软件的判断。开放源代码组织是通过开源软件许可证这种合同形式来明确规定源代码使用者的义务,使开放源代码的思想得以传播,同时巧妙地保有了其Open SourceInitiative、OSI 等一系列商标的所有权。虽然,对这些证明商标没有使用费的要求,但是使用这些商标还是必须遵守OSI的规则。
29、 许可证经OSI认证有何益处?
OSI组织从软件的许可证上着手,将证明商标许可给那些经其审核认定为开源软件的软件提供者。这样,凡被认定为开源软件许可证的,都可以标注OS、OSI等商标标识。因此,许可证经过OSI 认证可以在一定程度上保证遵循它的软件获得开源软件界的认可。但OSI终究是个非官方组织,OSI组织要想在开源软件领域实现“统一标准”的目的几乎没有什么成功的希望。但是该组织的定位和战略很好,将自己定位为一个行业自律协会性质,并且巧妙的应用了商标战略。将Open Source Initiative、OSI申请了证明商标 ,称为“OSI Certified”标志,自己作为证明商标的管理者,为开源软件业的发展做出了重大的贡献。
30、 什么是“copyright”?
“CopyRight”在英文中是“版权”的意思,相当于我国的“著作权”。指的是作者对其创作的文学、艺术和科学作品依法享有的专有权利,包括发表权, 署名权,修改权,保护作品完整权,使用权和获得报酬权等。Copyright 是版权法对作品所规定的一揽子权利,但法律同时规定了著作权人拥有对不同内容进行授权的权利。
31、 什么是“copyleft”?
“Copyleft”是将一个程序成为自由软件的通用方法,同时也使得这个程序的修改和扩展版本成为自由软件。一般翻译为“反版权”、“版权属左”、“版权所无”、“版權左派”、“公共版权”或“版责”。Copyleft 不同于公共域软件(public domain),有版权的情形,Copyleft是一个广义的概念;有许多形式可以将其细化。Copyleft声明任何人如果要重新发布软件,不管是否做了修改,必须使得这一重新发布的软件有被复制和修改的权力。例如GPL 规定只要有任何一部分代码是以GPL 发布的,那么全部程序作为整体就必须接受GPL 的越是。可见Copyleft 是为了保证每个用户都有自由的权力而表达的一种精神理念。
32、 “copyright”与“copyleft”是什么关系?
“copyright”跟“copyleft”只是字面上的对立,其本质上不是同一个层次的含义。“CopyRight”是作品对作品享有的法定权利,是一个含义明确,界限清晰的词汇。而“CopyLeft”是GNU 创始人“Richard Stallman”创造的词汇,用以强调其主张,是对copyright 规定的非传统应用的叛逆性说法。。“CopyLeft”是一个广义概念,GNU/GPL是其一个具体的细化实例。“CopyLeft”的确是针对“CopyRight”而提出的。但“CopyLeft”和“CopyRight”不是一个层次的内容,不应放在一起比较。
33、 什么是“GPL”?
GNU/GPL 是自由软件基金会发布的一个软件授权许可证,全称是《GNU通用许可证》(GNU General PublicLicense),简称GPL。这是一个关于自由软件复制、修改和发布的版权形式的规则体系。GPL 适用于大多数自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。GPL——通用公共许可禁止派生或发行产品的限制(copyleft精神),最大限度地保障软件的自由,并希望由此实现“消除计算机程序在复制、分发、理解和修改方面的限制”这一FSF 的初衷。
34、 GPL的核心要求有哪些?
任何基于GPL 软件开发的衍生产品在发布时必须采用GPL 许可证方式,且必须公开源代码。项目中即使仅有微小部分来源于GPL 许可的软件,也必须按照
GPL的要求公开全部源代码。即具有所谓的“传染性”。
35、 “GPL”就是“免费获得”和“免费贡献”吗?
在GPL 的条款下,“free software”指的是自由软件而非免费软件。由于其通常是以免费的形式分发,所以很多人误以为它是免费的,随便可以得到的。即使是你免费的得到自由软件,但是实际上所有行为都应当是在GPL 的规则之下,它伴随着很多责任,违约可能造成经济赔偿的负担。另外,从价格上看,它也不一定就是零费用的。基于GPL 可以明显看出的几种模式可以盈利:可以利用分发,收取一定的分发的成本费用,尽管通过分发一个软件维持长期盈利的可能性很小;利用提供担保条款,收取一定的对价;利用自由软件产生很多不同作品,可以收取该产品相应的商标许可费;此外,提供对自由软件的技术支持服务,已经成为现在Linux商业公司的主要生存手段了,服务类的盈利模式比重在加大。
36、 GPL的传染性是什么意思?
依据GPL 的相关规定,如果原始授权人采用GPL来发布自己的作品,那么无论该作品的任何衍生作品,都要遵从GPL 的规则,尽管你对于该衍生作品拥有著作权,但是你也不可以因此认为它是你的心血而另立新规,可谓“子子孙孙无穷尽也”。也即规则的“传染性”。GPL 下的软件,是允许作为学习来复制使用的。但当基于该软件源代码开发出新作品,而该作品并非是自由软件的一部分,或基于其产生的衍生作品,它是独立的,不同于该自由软件的部分,即不同作品,那么它将不受GPL 的约束;但是,一旦你把它同该自由软件作为一个整体一同发布,它就会被“传染”上GPL 的属性,从而不得不遵守GPL 的规矩了。也即作品整体的“传染性”。如果软件是非开源的,那么是不可以把GPL 下的软件源代码使用到该的程序中的。但是,倘若你非得使用该开源代码,那么你只有把你原先的非开源的代码贡献给社区了,也即GPL 下的开源性“传染”了非开源代码。
37、 “独立作品”可以对“传染性”免疫吗,怎样判断
作品是不是“独立作品”?“独立作品”能够对“传染性免疫”。在“GNU/GPL有关复制、发布和修改的条款和条件”一章的第二条,第二款中规定,“这些要求适用于修改了的作品的整体。如果能够确定作品的一部分并非程序的衍生产品,可以合理地认为这部分是独立的,是不同的作品。当开发者将它作为独立作品发布时,它不受此许可证和它的条款的约束。”但是当将这部分作为基于程序的作品的一部分发布时,作为整体它将受到许可证条款约束。准予其他许可证持有人的使用范围扩大到整个产品。也就是每个部分,不管它是谁写的。因此,本条款的意图不在于索取权利或剥夺全部作品的权利,而在于是履行权利来控制基于程序的集体作品或衍生作品的发布。是否受到GPL 的约束取决于它是否是源程序的衍生作品,而非是否与该程序存储于同一物理介质上。不过需要注意的是,GPL没有经过任何一家法院的检验,对于怎样的作品才是“独立作品”还需要由法官判定。
38、 GPL对作品的哪些知识产权做了规定?
基于GPL 的软件要注意著作权和专利权两方面内容:
(1) 著作权
GPL 承认软件作者的著作权,但同时要求作者必须允许任何人享有对其作品的使用、复制和修改的权利。
GNU 的创始人“Richard”还创造了一个词“CopyLeft”来表明GPL 同传统著作权的不同,其宗旨既保证用户无限复制和修改的权利。同时GPL 也规定用户在发布其源于GPL的软件时,必须附带GPL条款。
(2) 软件专利
Richard 的GNU 计划书中还专门提到了这一点。他认为“自由软件面对的最大威协就是软件专利”。因为专利所有者可以基于其专利权而对抗GPL 所要求的“自由使用和复制权利”。因此,GPL 规定:“鉴于任何自由软件时刻处于软件专利的威胁之下,我们希望能避免这种情况:自由软件的再传播者在实施过程中使得这项软件程序获得专利独占权,正是基于此目的, 我们明确地要求承诺任何自由软件可以去获得专利授权的前提是一旦获得软件专利授权必须向所有的人以符合自由软件使用条件的标准许可使用该专利, 否则就不可去申请软件专利。”
39、 怎样的行为算做接受了GPL(或缔结了GPL 许可协议)?
GPL 的规定大部分是对许可人的规定,只要许可人愿意将自己对软件的专有权进行稀释,就可以使用如下对GPL 做出承诺:采用给程序附声明的方法告知被许可人的权利和义务。最安全的方式是将它放在每个源程序的开头,以便最有效的传递拒绝担保的信息。每个文件至少应该有“版权所有”行,以及在什么地方能够看到声明全文的说明。这是缔结协议的第一步,可以理解为一个要约,即只要被许可人愿意接受,协议就可以马上生效。
40、 使用遵循GPL 的软件的被许可人必须遵守哪些义务?
对使用GPL 软件的被许可人规定义务,在于保证每一个被许可人都从原始著作权人那里获得复制、发布和修改的权利。同时,保证GPL 的软件也可以用于实现一定的经济收益。
(1) 声明的义务:将每一个副本上标注著作权声明、不承担担保声明等;
(2) 发布修改说明的义务:修改人必须在修改文字中附加修改了文件的明确说明以及具体的修改日期;
(3) 传递GPL 条款:发布或出版作品时,包括程序的全部或部分或由该全部或部分衍生的作品时,必须作为将作品整体按照GPL 条款许可给任何第三方;
(4) 发布时提供源代码;
(5)被许可人没有分许可的权利和义务,后来的接受者自动从原始许可证颁布哪里获得许可,同时被许可人没有强求第三方履行许可证条款的义务。
(6) 选择是否发布无担保和免责条款。GPL11 条和12 条规定程序在没有担保和不承担责任的条件下准予免费使用,但这条不是强制性的,许可人可以选择提供担保以换取一定的费用。
41、 “GPL”后的软件是不是进了“公有领域”?
不是。GPL 下的软件仍旧是受知识产权法保护的软件作品,作者对其享有绝对的版权。相关专利权人也不因软件代码开放而失去专利权。这些权利比较容易被忽视通常与获得软件的代价较小相关。公有领域的软件丧失版权法一切保护因而可以随意使用,而“GPL”的软件不同。许可人有权在许可的条件被打破时收回许可,并按著作权法和合同法等规定追究侵犯著作权或违反合同的违约责任。
42、 为什么开源软件强调“No warranty”?
开源软件的精神在于通过众多开发者愿意贡献个人智力作品并能够在法律允许的条件下“安全”的贡献个人的成果,将其以非传统的发布模式,从而保障用户最大限度使用软件的自由。如果程序员开发了软件并将这个软件贡献给了社区以保证其它用户和开发者可以自由地获得软件,然而程序员还需要承担“warranty”带来的责任,那么就这个合同对程序员(贡献者)是不平等的,就不能实现因为自由软件提倡的是源代码的公开性。为了在鼓励社区里的人员都奉献自己的源代码的同时,为了给他们解除后顾之忧,避免法律纠纷,所以
才在许可证下明确说明了该自由软件是不提供任何明示或默视担保的。
43、 原始许可“不担保”,开源软件就一直得不到担保吗?
再分发者可以对开源软件提供担保。在各许可协议中,都会发现“不但保”字眼。只有在完全理解开源模式规则的情况下,才能澄清“开源软件不能进行担保”的误解。例如,在GPL 开始的定义中,我们可以看到原始版权人(copyright holder)和再分发者(you)这两类人。GPL 只是为了考虑原始版权人避免法律纠纷的需要,保障他们发布自由软件的自由性,而明确的要求原始版权人发布的作品不得提供担保。但是,对于再分发者,这种无担保的限制已经没有了,它明确的同意再分发者可以为用户提供一定的担保而得到对价。当然,担保的前提是,担保这必须表明他们是再分发者的身份。
44、 为什么开源软件的商业应用归根结底还是需要有人提供担保?
因为当软件成为一件商品,用户除了关心是否可以获得源代码以外,还关心软件的稳定性等其他指标。商业应用需要的不仅是一件可用于解决某个技术问题的创新成果,还需要培训、服务等其它满足商业化的因素。开源软件作品与成熟的软件商品之间的距离和差距必须藉由对其它指标的担保得以实现。
45、 原始许可“不担保”,用户怎么办?
再发布开源软件的开发者通常不关心是否提供担保,但软件的最终用户的确十分在意担保的问题。因为担保不仅意味着产品的质量可以获得一定程度的保证,还可以将用户从知识产权侵权的风险中彻底解脱出来。由于存在愿意通过担保获得商业利益的再分发者。如果用户希望获得担保,他只要选择合适的再分发者就可以了。这里的“合适”显然不仅需要考虑软件是否可用,还必须考虑这个再分发者是否具备相应的担保能力,如提供相应服务的水平如何。
46、 再分发人对不享有知识产权的开源软件收费是否合法?
只要授权还存在就是合法的。因为通过开源软件的授权模式,开发者自愿地放弃了独占性和专有性,以合同的方式对使用者和再发布者进行了权利的分享,而授权中并没有不可以收费的强制条款。用户(再分发者)已经获得了最大程度使用软件的自由。只要有人愿意付费,不管是仅仅为了省去自行取得代码的麻烦还是为了获得相应的担保,甚至是出于对再分发者的捐赠,收费行为和付费行为都没有受到禁止。
47、 为什么开源软件本身可以收费,但通过单纯对软件进行收费实现商业目的的模式注定不成功?
这是由市场经济的基本特点所决定的。市场上存在各种商品自由竞争,质量和价格通常是消费者进行选择决定性因素。开源软件的代码可以自由获得,生产软件的成本普遍降低。由于消费者可以自行获取源代码,显然以较高的价格出售这些代码(软件)是不现实的。而商业模式要解决的是一个如何获得长期、稳定的较高收益的问题,通过贩卖开源软件本身是不可能实现这个目标的。但开源软件与其它类型软件的结合趋势十分明显,开源世界已经产生了其它成熟的商业模式值得借鉴和推广。
48、 许可人适用特定许可证发布的软件还能不能撤销许可?
不能撤销。不能撤销许可指的是只要被许可人严格执行许可的前提和条件,许可人就不能以其它理由撤回许可或另行增加许可的条件,除非其愿意承担违约责任。不能撤销许可并不意味许可一定会长期存在,许可协议是一个附有条件的合同,如果被许可人违反了条件的约定,许可就将自动终止。例如,如果GPL 下一个软件的再发布者没有按照协议要求公开修改内容,那么GPL 许可就自动不对其开放了。如果这个再发布者继续持有软件,则属非法持有软件行为,就是违反版权法的规定,与盗版无异。
49、 已经免费接受许可的一方会不会在日后面临被收费的危险?
虽然开源软件许可不排除收费的可能,但通常以免费的方式进行授权。用户有时会产生这样的疑问:现在免费获得的软件会不会有一天被强行收费。答案应该是不会。因为在用户获得和使用软件的那一刻,许可人和被许可人已经就这个软件达成了一致意见。如果约定免费授权,那么,这个免费的条款是符合合同法、受到合同法保护的。如果在将来的某个时间,许可人决定收回更换一种许可方式,例如收费许可,那么许可就必须依照合同法的规定承担由此造成的违约责任。由于开源软件的使用范围很广,更改许可方式与撤销许可的成本通常会不可接受。
50、 开源软件的商标侵权风险存在于哪些方面?
商标侵权的风险指的是对注册商标和非注册商标的不合理使用,与开源软件相关的商标主要有:
(1) 所谓的“认证商标”,指以OSI组织为代表的非盈利性组织所拥有的商标;
(2) “企业商标”则是指由企业管理、授权使用的商标,这和传统商标法意义上的“商品商标”、“服务商标”并没有不同;
(3) “概念商标”,专指那些性质有待确认的、仅为表达一种理念或概念的“商标”,前文中提到的LINUX 便是“概念商标”的典型代表。
51、 我国企业如何应对开源软件相关的商标侵权风险?
(1) 目前使用OSI 等证明商标不需要付费,但“不付费”的商标并不等于“没有任何权利的商标”。OSI、OPEN SOURCE都是合法的证明商标,企业要想使用这些商标,一定要符合商标权利人――即OSI组织的规定。
(2)无论企业商标出现在源程序包的源程序中,还是出现在其运行界面中,都属于权利人行使自己合法商标权的范畴,我们的软件企业都应该尊重权利人的权利,否则就会面临侵权危机。另外就是禁止“反向假冒”,即将他人产品上的商标去除或对他人的商标进行替换。
(3) 我们足以判定近期LINUX 无论在中国还是其他国家都很难得到商标法的保护,对于中国企业来说,这或许是一件好事,因为我们面前的“商标陷阱”又少了一个。然而,这对于广大的尚处于发展期的中国开源软件企业也是一个警钟:我们不但要大力打造自己的软件品牌,更要致力于保护自己的品牌,避免其被淡化,最终落得个“一人种树大家乘凉”的结果。
52、 利用开放源码启动专有软件企业应重点注意哪些事项?
中小型企业如果不能完全理解将要使用的开源码许可证,可遵循以下原则
(1)不要把任何开放源码直接混合到自己的代码中;
(2)不要为了自己的需要,而修改这些开放源码;
(3)如果可能的话,甚至不要下载和编译开放源码。许多开放源码项目提供二进制代码,很多项目遵循灵活的BSD 许可证,而另一些则遵守严格的GPL 规定,所以,保持自己的专有代码与开放源码的区别是很重要的。当然,根据企业收入模式适当地让自己的代码过渡为开放源码,可能对企业更有利;
(4)挑选合作商的时候,要挑选那些符合自己要求的、有积极用户群的合作者。至少有一点可以确定,即使你的项目终结了,你还拥有源代码。假如你坚持API标准,那么转换到另一个项目上,或寻找一个商业卖主,事情就会相对容易些。
53、 为什么国外用户大量使用开源软件但看似是并不关心知识产权风险?
(1) 开源软件卓越的技术水平与较小的风险之间权衡的结果;
(2) 开发者和再许可人遵守国际规则,通过国际社区和组织增前了开源软件整体可能面临法律障碍;
(3) 开源软件的GPL 等许可证已实行多年,大大减少了可能产生的专利风险;
(4) 开源软件深得全世界广大用户和业界的支持,这使任何针对开源软件的法律诉讼都难以付诸实施;
(5) 对用户存在担保机制;
(6) 知识产权风险的可控制性;
(7) 开源的模式使其风险大大低于专有软件。