Open source 新手入门

Open source 新手入门

developerWorks


什么是开放源码技术?
开放源码技术为什么那么重要?
什么是 FOSS?
开放源码与 “免费啤酒” 和 “自由言论” 有何关系?
如何入门开放源码?
什么是 LAMP?
开放源码是用哪种语言编写的?
开放源码软件是合法的吗?
IBM 在开放源码方面所做的努力有哪些?
IBM 有开放源码许可证吗?




该指南将开放源码的所有基础知识放入上下文中,帮助您开始了解当今范围最广的、并且在不断扩大的软件开发的动态领域。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 文章


回页首


开放源码是用哪种语言编写的?

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


回页首


开放源码软件是合法的吗?

是的,几乎每个使用电子邮件或者在网上冲浪的人都是开放源码软件的用户。大多数电子邮件软件在网上传输期间都是通过开放源码服务器传递的。而多数 Web 服务器都依赖于开放源码软件。Google 就是基于开放源码。正如 OSI 所指出的那样,互联网的运行动力(包括邮件传输、Web 和 FTP 服务器)实际上全都基于开放源码。

开放源码软件不是 "warez",warez 是不需要任何复制所有者权限或适当的许可证就可以发布的软件。


回页首


IBM 在开放源码方面所做的努力有哪些?

简言之,IBM 是支持开放源码创新和协作的主力军。IBM 公司参与了贡献给开放源码社区的 120 多项协作项目,其中包括 EclipseDerbyGeronimoGlobus

IBM 在面向开发和创新的 “专利共用” 方面贡献了 500 个专利。IBM 已经在 Linux 开发上投资了 10 多亿。IBM 推动了 Linux 在开发社区中的使用和向 Linux 的移植,并为开放源码开发人员增加了企业级工具。


回页首


IBM 有开放源码许可证吗?

有,即 Common Public License。请参阅 通用公共许可证(Common Public License,CPL)常见问题解答(FAQ),获得关于 CPL 的背景信息。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值