开源 |
开源(Open Source,开放源码)被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。
基本简介编辑本段回目录
开源 |
美国在像网络这样的虚拟环境中,驱动系统的底层代码,尤其是广为人知的那些应用程序之间的通信协议,它们在某种意义上很像现实社会中的法规。换句话说,这些代码对网上的行为给出了一些规范,它鼓励某些行为,而限制其他行为,就像现实社会的法律一样。因此,开放源码带来了一个更民主的开发方式,在这种方式下,好的主意将被集体分享,而不是作为智力资本被个人秘藏着。在这种意义上,开放源码实质上成为一种政治哲学。
开放源码的精神在于使用者可以使用、复制、散布、研究、改进软件。最早可以回朔到1960 年代。当时,售卖大型计算机的厂商如IBM,把一些软件及原始码一并送给客户,让客户能够因不同需求而自行更改软件。在 1991-1992 年期间,住在芬兰的Linus Torvald制造了第一版的 Linux 操作系统。在一群热心的程序人员努力下,把 Linux 操作系统以及外围的应用程序逐一打造。
出名的作品除了趋于成熟的Linux 操作系统外,还有Apache网页服务器、Perl 程序语言、MySQL 数据库、Mozilla 浏览器、Open Office等等。近来,在政府的推动及各软件大厂(如IBM、Redhat、Apple 等)的推动下,预料这股旋风将会掀起新的软件革命。源代码开放是信息技术发展引发网络革命所带来的面向未来以开放创新、共同创新为特点的、以人为本的创新2.0模式在软件行业的典型体现和生动注解。
版本版权编辑本段回目录
开源 |
开放原始码软件就是正版软件,随着使用者的增加,开放原始码软件趋于精致产品化,功能接口甚至不输给高价位的商用软件。
全世界有超过几万套开放原始码软件,从网页浏览器、文书处理工具、操作系统以至于企业应用程序等一应俱全。
版权常见问题
常见问题 | ASF | BSD | CPL | GPL | LGPL | LGPL* | MIT |
得到这些原始著作后, 散布(distribute) 时是否可收取高于散布成本之费用 | |||||||
是 | 是 | 是 | 否* | 否* | 否* | 是 | |
散布时是否必须连同原始码一起散布 | 否 | 否 | 是 | 是 | 是 | 是 | 否 |
是否可再授权 | 否 | 否 | 是 | 否 | 否 | 否 | 是 |
是否得与非自由软件整合 | 是 | 是 | 是 | 否 | 否 | 否 | 是 |
把原始著作放在自创的软件里,是否必须使用与原著作完全一致的授权条款 | |||||||
否 | 否 | 否 | 是 | 是 | 是 | 否 | |
是否必须公开原始码 | 否 | 否 | 是 | 是 | 是 | 否 | 否 |
是否必须附加原著作之著作权声明 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
是否必须附加说明文件 | 否 | 否 | 否 | 是 | 是 | 是 | 否 |
定义标准编辑本段回目录
开源 |
开放源代码并不仅仅意味着对源代码的访问权。开放源代码软件的发布条款必须满足以下条件:
1、自由地再发布
如果被发布的软件是由不同来源的程序组成的,许可证不得限制任何当事人或组织(party)销售或赠送作为被发布软件成分之一的开放源码软件。许可证不得从此项销售中索取使用费或其它任何费用。
2、源代码
程序必须包括源代码,必须允许以源代码方式发布、还必须允许以编译后的形式发布。如果产品的某个部分没有与源代码一同发布,那么必须提供通行的、不需要支付合理范围之外的任何费用的手段以获得源代码――从网络上免费下载是一种可取的方式。源代码必须是程序员对其进行修改的最佳形式。故意地使源代码变得含混晦涩是不允许的。也不允许给出预处理器或翻译器处理的中间结果。
3、派生作品
许可证必须允许修改软件和派生软件,并且必须允许它们按照原软件的许可证的条款进行发布。
4、作者的源代码的完整性
只有在许可证允许与源代码一同发布“补丁文件”(该“补丁文件”以在创建时对程序进行修改为目的)时,许可证才能限制对修改形式的源代码的发布。许可证必须明确地允许发布由修改后的源代码生成的程序。许可证可以要求派生的作品采用不同的名称或不同的版本号以区别于原来的软件。
5、不得歧视任何个人或团体
许可证不得歧视任何个人或者由多人组成的团体。
6、不得歧视任何应用领域(fieldsofendeavor)
许可证不得限制任何人把程序应用于任何领域。例如,不得规定程序不能应用于商业领域或基因研究领域。
7、许可证的发布
与程序有关的权利必须适用于该程序的任何使用者,并且程序的使用者也不需要为了使用该程序而获得其它许可证的许可。
8、许可证不能针对于一个产品
与程序有关的权利不能由该程序是否作为某个软件产品的一部分来决定。如果程序从那个发布中被抽出来,并且按照程序的许可证的条款进行使用和发布,那么得到该程序的当事人或组织将获得与得到原程序的使用者相同的权利。
9、许可证不能影响其它软件
许可证不得向与采用它的软件一同发布的其它软件提出任何限制。例如,许可证不能坚持要求在同一媒体上发布的其它程序都是开放源代码软件。
定义原理编辑本段回目录
开源 |
开放源代码定义之原理:给出开放源代码的定义的目的是:把所确信的、由软件开发团体所公认的“开放源代码”的含义作为一组具体的准则写下来---该准则确保按照开放源代码许可证发布的软件可以得到与其它软件同样认真的评审、使软件可以不断地得到改良和遴选,从而提供非开放软件所难以提供的可靠性与能力。
为了使此项工作持续发展,必须抵制人们为了短期利益而中止为软件开发做出贡献。这意味着,许可证的条款必须防止人们藏匿(lockup)源代码从而导致只有很少的人才能够阅读和修改它。当软件的开发者按照由OSI认证的许可证发布他们的软件时,他们可以在软件中使用“OSICertified”标志。这种认证标志告知用户,该软件所采用的许可证符合开放源代码定义。
开放源代码软件的发布者有权为他们自己的软件做出选择。GPL满足这条要求。按GPL发布的库只影响(contaminate)在运行时与之连接的软件,于仅仅和它一同发布的软件无关。
标志纲要编辑本段回目录
开源 |
OSI Certified标志被用于软件而不是许可证:人们需要知道的是组成软件的包和它们的许可证是开放的源代码。此外,单独的许可证可能不是“货物”,它由美国专利和商标局注册认证标志。但是软件的作者显然必须能够在不询问情况下(自我认证)、在适当的时刻确认他们的软件是按照OSICertified的开放源代码方式发布的。所以认证按照两步进行:
OSI提供一个满足开放软件源代码定义的开放源代码许可证表。这些许可证经过公众的详细审查并且被所批准。如果你有一个希望加入该列表的许可证,请与license-approval@opensource.org联系,它启动了获得许可证批准的程序。
如果你希望在你的软件上设置OSICertified标志,你可以从列表中选择一个获得批准的许可证并根据它发布软件,并且适当地为软件做标志。上面仅仅是一个概括。下面给出申请批准许可证和把OSICertified标志应用在你的软件上的详细说明。
许可审批编辑本段回目录
开源 |
2、如果发现你的许可证不符合开放源代码的定义,将与你一同解决这个问题。
3、同时,将关注许可证论坛列表,并且与你一同工作以解决大家提出的任何未包含的问题。
4、作为该过程的一部分,还将就许可证问题向外界寻求法律上的建议。
5、一旦许可证符合了开放源代码定义,并且在许可证论坛上经过了充分的讨论或者其它的评审者没有提出认为重要的问题,将通知你,许可证已经被批准了,同时它被复制到网站上,并且被加入以下的许可证列表。
标识声明编辑本段回目录
开源 |
完整的声明是:
ThissoftwareisOSICertifiedOpenSourceSoftware。
OSICertifiedisacertificationmarkoftheOpenSourceInitiative。
较简短的声明是:OSICertifiedOpenSourceSoftware
软件的每种发布形式都有自身的要求:
如果软件以电子的形式发布(而不是实物(tangible)的形式),你必须把完整的声明放在README文件或者类似的、人类用户将首先阅读的文件中。
如果软件以实物形式发布,你必须完成以下所有可行的任务:
如果软件的发布包括印刷品,你必须把完整的声明加入该印刷品。
如果软件发布在可擦写的媒体(例如软磁盘)、CD-ROM、磁带等媒体上,它们在物理上可以添加能够被人的裸眼所阅读的简短声明,而不影响它们的功能,你必须把完整的声明或简短的声明标注在该媒体上。
如果软件的发布是一个的包,从而使其中的声明不能被阅读。你必须在包的外面放置完整的声明。
获得批准的许可证
以下许可证满足开放源代码的定义,并且已经被批准用于OSICertified的开放源代码软件。没有给出批准日期的许可证是在1999年1月1日以前批准的。
TheGNUGeneralPublicLicense(GPL);
TheGNULibrary(Lesser)GeneralPublicLicense(LGPL);
TheBSDLicense;
TheXConsortiumLicense;
TheArtisticLicense;
TheMozillaPublicLicense(MPL);
TheQPL;
其它符合定义的许可证包括:libpng许可证、zlib许可证、IJGJPEG许可证和OPL(OpenLDAPPublicLicense)许可证。