源代码是什么
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们电脑上安装的软件都是目标程序。
除了脚本语言的源程序外,其他源程序是不能直接运行的。
提倡软件开源的人士认为应该提供源程序给用户,让用户自己修改,有利于软件行业的发展。
反对的人觉得这样不利于保护版权。
你如果不懂编程,源程序可以不管它。
不影响正常使用。
源代码作为软件的特殊部分,可能被包含在一个或多个文件中。
一个程序不必用同一种格式的源代码书写。
例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。
较为复杂的软件,源程序文件可以达到成千上万个。
为了降低复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。
在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。
还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。
关于开放源代码的定义以及解释
作者:王立来源:eNet硅谷动力
【译者的声明】
本文是开放源代码定义、开放源代码定义原理以及OSI Certified标志与纲要的中文译文。
本文由王立在1999年8月翻译。
本人在翻译时为确保译文与原文在含义上一致性付出了最大努力,但是本人不能对由于译文与原文在含义上的差异而造成的任何误解或对译文的误解所造成的任何直接的、间接的损失承担任何责任。
开放源代码并不仅仅意味着对源代码的访问权。
开放源代码软件的发布条款必须满足以下条件:
我们认为本开放源代码定义涵盖了由绝大多数软件团体使用的术语"开放源代码"的最初含义和当前含义。
然而,该术语被广泛地应用,并且它的含义变得不精确了。
OSI Certified 标志是某个软件发布许可证是否服从开放源代码定义的OST认证方式。
一般的术语"开放源代码"并不提供这种担保,但我们仍然鼓励使用"开放源代码"这一术语以表明它符合"开放源代码定义"。
关于OSI Certified标志的信息,以及已经通过了OSI Certified、符合"开放源代码定义"的许可证,请参见OSI Certified标志与纲要。
【开放源代码定义之原理】
给出开放源代码的定义的目的是:把我们所确信的、由软件开发团体所公认的"开放源代码"的含义作为一组具体的准则写下来---该准则确保按照开放源代码许可证发布的软件可以得到与其它软件同样认真的评审、使软件可以不断地得到改良和遴选,从而提供非开放软件所难以提供的可靠性与能力。
为了使此项工作持续发展,我们必须抵制人们为了短期利益而中止为软件开发做出贡献。
这意味着,许可证的条款必须防止人们藏匿(lock up)源代码从而导致只有很少的人才能够阅读和修改它。
当软件的开发者按照由OSI认证的许可证发布他们的软件时,他们可以在软件中使用"OSI Certified"标志。
这种认证标志告知用户,该软件所采用的许可证符合开放源代码定义。
关于我们的认证标志的更多信息及其纲要,请参见OSI Certified标志与纲要。
1.自由地再发布
通过强制要求许可证允许自由地再发布,我们抵制了任何为了获得少量短期销售金额而放弃长期效益的诱惑。
如果我们不这样做,就会有很多压力迫使合作者放弃承诺。
2.源代码
由于软件只有通过修改才能够得到改进,因此我们要求获得易于理解的源代码。
因为我们的目的是使软件易于改进,我们也就希望软件易于修改。
3.派生作品
2.如果我们发现你的许可证不符合开放源代码的定义,我们将与你一同解决这个问题。
3.同时,我们将关注许可证论坛列表,并且与你一同工作以解决大家提出的任何未包含的问题。
4.作为该过程的一部分,我们还将就许可证问题向外界寻求法律上的建议。
5.一旦许可证符合了开放源代码定义,并且在许可证论坛上经过了充分的讨论或者其它的评审者没有提出我们认为重要的问题,我们将通知你,许可证已经被批准了,同时它被复制到我们的网站上,并且被加入以下的许可证列表。
使用该标志
你可以在这两种软件的发行上使用OSI Certified标志。
该软件的发布包括并且达到了被批准的许可证列表中某个许可证的要求,或者该软件的源代码已经被明确地放到公众可以得到的位置。
为了表明你的软件是按照OSI Certified发布的,你必须不加任何修改地把下面两者之一,按照下述方式加入你的软件。
完整的声明是:
This software is OSI Certified Open Source Software.
OSI Certified is a certification mark of the Open Source Initiative.
较简短的声明是:
OSI Certified Open Source Software
你的软件的每种发布形式都有自身的要求:
* 如果软件以电子的形式发布(而不是实物(tangible)的形式),你必须把完整的声明放在README文件或者类似的、人类用户将首先阅读的文件中。
* 如果软件以实物形式发布,你必须完成以下所有可行的任务:
* 如果软件的发布包括印刷品,你必须把完整的声明加入该印刷品。
* 如果软件发布在可擦写的媒体(例如软磁盘)、CD-ROM、磁带等媒体上,它们在物理上可以添加能够被人的裸眼所阅读的简短声明,而不影响它们的功能,你必须把完整的声明或简短的声明标注在该媒体上。
* 如果软件的发布是一个的包,从而使其中的声明不能被阅读。
你必须在包的外面放置完整的声明。
如果不能把以上任何条款用于发布,请与我们联系,我们将把你选择的位置加入本列表。
获得批准的许可证
以下许可证满足开放源代码的定义,并且已经被批准用于OSI Certified的开放源代码软件。
没有给出批准日期的许可证是在1999年1月1日以前批准的。
* The GNU General Public License(GPL);
* The GNU Library(Lesser) General Public License(LGPL);
* The BSD License;
* The X Consortium License;
* The Artistic License;
* The Mozilla Public License(MPL);
* The QPL;
其它符合定义的许可证包括:libpng许可证、zlib许可证、IJG JPEG许可证和OPL(Open LDAP Public License)许可证。