什么是开放源码技术?

该 指南将开放源码的所有基础知识放入上下文中,帮助您开始了解当今范围最广的、并且在不断扩大的软件开发的动态领域。developerWorks 的开放源码专区是获得 how-to 信息、工具和项目更新的一个好地方,这些信息有助于您利用开放源码技术进行开发,并将它们与 IBM 产品结合使用。主题区包括 EclipseApache DerbyApache Geronimo、脚本语言(如 PHPPython 文章Python 教程Perl 文章Perl 文章),以及关于 开放源码许可 和开放源码开发的更广泛讨论。

 

什么是开放源码技术?
概括地说,开放源码是一种协作。更具体地说,它是软件项目上的公共协作。IBM 在开放源码方面作出了巨大贡献,奉献了 120 多个项目,其中包括耗资超过 10 亿的 Linux® 开发。根据开放源码促进会(Open Source Initiative,OSI)的定义,可将开放源码定义为:“开放源码通过支持源代码的独立同业互查(independent peer review)和快速发展演变提高了软件的可靠性和质量。要通过 OSI 认证,软件必须在获得许可证的情况下发布,该许可证可保证免费读取、重新发布、修改和使用该软件的权利。”

开放源码还经常应用于个人、组织和公司的民众运动,寻求将这类软件融入主流应用的方法。根据 开放源码促进会 的定义,开放源码由 10 点组成,下面对这 10 点进行了复述。开放源码并不只意味着访问源代码。开放源码软件的发布(distribution)条款必须遵从以下标准:

1. 免费重新发布
当软件是几个不同来源的程序集成后的软件发行版本中的其中一个组件时,许可证不能限制任何团体销售或分发该软件,并且不能向这样的销售或分发收取许可费和其他费用。

2. 源代码
程序必须包含源代码,并且必须允许以源代码或已编译的形式发布。如程序在发布时未带源代码,则必须以一种非常公开的方式,在不超过合理重造成本的情况下, 让人们获得源代码,例如可以在不收取费用的情况下,放在网络上供人们下载。源代码无疑是编程人员最容易修改程序的形式。不允许故意混乱源代码。也不允许使 用中间形式,比如预处理器或转换器的输出。

3. 衍生产品
许可证必须允许修改原产品和衍生产品,并且必须允许在与原始软件相同的授权情况下发布修改过的产品。

4. 作者的源代码的完整性
许可证可以禁止他人以修改过的形式发布源代码,只在该许可证基于修改程序的目的时,才允许随源代码发布 “补丁文件”。该许可证必须明确允许发布根据修改过的源代码构建的软件。许可证可能要求衍生产品必须附加不同于原始软件的名称或版本号。

5. 不得歧视任何人或团体
许可证不得歧视任何人或任何团体。

6. 不得歧视程序在任何领域内的使用
许可证不得禁止任何人在特定领域内使用某一程序。例如,不得禁止程序在商业上的应用,或者在基因研究上的使用。

7. 许可证的发布
附加在程序上的权利必须应用于那些使用重新发布的程序的人,无需通过其他人额外加以授权使用。

8. 许可证不得专属于特定产品
附属于程序的权利不得仅限于作为特定软件发行版一部分的程序。如果程序衍生自该发行版并以获得该程序的授权的名义被使用或发布,则使用重新发布的该程序的其他所有人应该享有原始软件发行版本中所授予的那些权利。

9. 许可证不得对其他软件加以限制
许可证不得对其他随已许可的软件一起发布的软件附加任何限制。例如,不得规定在相同媒体上发布的其他所有程序接受该许可证的限制。

10. 许可证必须是技术中立的
任何许可证规定都不可以基于任何单独某项技术或界面风格。

请参阅 developerWorks 文章 “开放源码许可,第 1 部分: 意图” 和 “开放源码许可,第 2 部分: 学术许可与互惠许可”,以获得额外的信息。

回页首
开放源码技术为什么那么重要?
开放源码软件最初吸引大多数计算机用户注意的是它的价格。开发源码程序通常是由作者捐献的。不过,零支付成本不是开放源码软件的本质。

有一些实际的、辨证性的讨论有助于您理解开放源码开发:

  1. 开放源码程序允许开发人员查看代码,看看它是否可以改良,然后用于用户自己的程序中。来自世界各地的贡献者可以贡献和提供翻译、文档、bug 报告和其他形式的帮助。一些想法的免费交换加速了软件的发展。
  2. 根据 GNU Manifesto,人们有权利获得计算机程序的人类可读形式。
回页首
什么是 FOSS?
FOSS 指 “免费和开放源码软件”(Free and Open Source Software)。该术语用于那些满足 freeopen source 中的定义的软件(当不需要对这两个定义进行区分时)。
回页首
开放源码与 “免费啤酒” 和 “自由言论” 有何关系?
英语单词 “free” 在其意思表达上有所取巧,既有自由 的含义,也有免费 的意思,即获取者不需花费任何成本的意思。当开放源码的支持者登上临时演讲台时,他们通常必须对其评论发表一个序言,让听众知道演讲者所指的 “free” 是 “自由言论” 中的自由,还是 “免费啤酒” 中的免费,这是一个策略问题。因为任何大学生都可以作报告,所以一些人必须承担酿制啤酒(或软件)的成本,而另一些人则免费享用啤酒(或软件)。
回页首
如何入门开放源码?
开始开发开放源码软件的决定是一个政治决定和许可决定,至少是一个技术上的决定。请参阅 受支持的开放源码许可证 的 OSI 列表,使您的选择满足您的需求和项目计划。请参阅 developerWorks 文章 “开放源码许可,第 1 部分: 意图” 和 “开放源码许可,第 2 部分: 学术许可与互惠许可”,以获得额外的信息。如果发现现有许可证中的一些条款让您感到迷惑,或者遇到一些问题,那么您可以咨询知识产权方面的专业律师。

在 2005 年初,开放源码许可证并不像社区所预言的那样杰出,尽管不清楚该预言是否更多的只是一种希望,而非一种预期。

回页首
什么是 LAMP?
LAMP 代表着 Linux、Apache、MySQL 和 PHP。不过,根据您所谈论的对象,P 可能代表着 Perl 或 Python。通常,P 被假定为 PHP。LAMP 还具有更深远的意义。LAMP 代表了创建基于服务器的应用程序的非专有的灵活方式。每个由该术语组成的程序都可以用一个最符合应用程序需要的代用品来替代。每个组件都可以单独升级,尽 管这通常是非常小心地、有计划地进行的。最棒的是,LAMP 中的所有程序都是免费的,或者说既是免费的也是自由的。

developerWorks 提供了一些极好的关于 LinuxApache 文章Apache 教程MySQLPHPPython 文章Python 教程Perl 文章Perl 文章

回页首
开放源码是用哪种语言编写的?
所有语言都可以用来编写开放源码。开放源码背后的技术不是开放源码最重要的元素。最重要的元素是作者的决定,或者是将软件发布为开放源码并使用许多开放源码许可证之一的作者。

回页首

Read: 731

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注