开放源码

来自术语
跳转至: 导航搜索

    一种将源代码公开的产品开发模式。对于软件而言,开源软件需遵循开源软件创始行动组织OSI制定的开放源码认定标准。

属性[编辑]

意义 软件编写上的公共合作 英文名 open source
中文名 开源

开源词语解释[编辑]

词语:常与“节流”连用。[释义]开源:开辟水源;节流:节制水流。开辟收入的新来源;节制支出;减少消耗。比喻增收节支。[语出]《荀子·富国》:“百进时和;事业得叙者;货之源也;等赋府库者;货之流也。故明主必谨养其和;节其流;开其源;而时斟酌焉。”

开源软件定义[编辑]

Open Source(即开放源代码)的定义由Bruce Perens(曾是Debian的创始人之一)定义如下:

●自由再散布(Free Distribution):获得源代码的人可自由再将此源代码散布。

●源代码(Source Code):程序的可执行档在散布时,必需随附完整 开源领军人物近照以及部分标志(7张) 源代码或是可让人方便的事后取得源代码。

●衍生著作(Derived Works):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。

●原创作者程序源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的程序码做分别,保障原始的程序码完整性

●不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。

●对程序在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。

●散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。 开源软件(2张)

●授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程序组合成一套软件,则当某一开放源代码的程序单独散布时,也必需要符合开放源代码的条件。

●授权条款不得限制其他软件(License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。

●授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。

开源使用原因[编辑]

降低风险

在当前动荡的市场环境下,组织不应该过度依赖软件公司,因为他们可能正面临生存的困境,每天都有无数的软件公司倒闭,因此选择软件公司的产品,无异于将自己的命运交给了别人。同时,软件公司的产品一向是封闭源代码的,试想一下,如果软件公司在一夜之间突然人间蒸发,你运行的系统就无人维护,随时可能面临更换系统的境地,如果选择开源软件,可以将这种风险降到最低,活跃的开源软件通常会有源源不断的贡献者维护和更新,而且自己可以获取源代码,完全可以按照自己的意愿进行修改,无需担心某一天突然找不到依靠。

产品质量更可靠

闭源软件的质量通常与软件公司的开发人员水平息息相关,开发人员的水平通常参差不齐,因此闭源软件的质量通常也是参差不齐,而开源软件通常是由社区中的技术高手在维护,有时用户自身也可以参与维护,并且开源软件的用户较多,软件存在的bug一般都会被及时发现和修补,产品质量更加可靠。

付出少,回报多

削减成本是商业成功至关重要的的因素,bug修复,开发功能和编写文档都会消耗大量的人力、物力和财力,如果选择开源软件,这些事情都有人在默默奉献,不需要你付出什么,但你却可以享用别人的劳动成果,当然你愿意的话,也可以为开源软件做贡献。

不花冤枉钱

使用开源软件开发一个产品是值得投资的,可以降低开发成本,并可以快速推出自己的产品,然而,许多组织都希望投放到生产环境中的产品能得到支持,于是诞生了许多提供企业级开源产品支持服务的专业型公司,组织可以根据自身的情况,有选择性地购买需要的服务。如果选择闭源产品,通常会多花钱,买到自己可能用不上的产品和服务。

招揽优秀人才

开源社区中充满了大量的优秀人才,他们富有激情,才华横溢,乐意为开源软件奉献,如果你的组织选择了开源软件,在他们眼中,你的组织充满了魅力,因此要想招揽到优秀的人才一点问题也没有,试想一下,对开源软件有浓厚兴趣的人加入到你的组织,想不提高生产力都难。

行业适应能力更强

因为开源软件大多免费的缘故,在中小型组织中迅速得到了广泛使用,这些使用开源软件的组织可能来自各行各业,经过这么多组织的长时间使用,开源软件的适应能力更强,因此无论你的组织属于何种类型,都可以放心使用,相比之下,闭源的软件产品通常用户数量较少,行业适应能力不强,即使软件公司承诺可以定制开发,也会是一个痛苦的合作过程。

产品更透明

由于开源软件是由社区在推动,其透明度很好,bug的发现,新功能的提出都是在一个公开的论坛中进行的,你可以随时获取到最新信息,还可以参与进去,开源软件会根据使用者需求不断演变,而不是受限于一家公司的意愿,因此你可以了解开源软件的未来发展规划和方向,其透明度比闭源软件高出许多,组织可以做到心中有数。[1] 

开源区别[编辑]

开源软件自由软件的区别

许多人将开放源代码与自由软件(Free Software)视为相同,其实不然。以定义条件而言,自由软件仅是开放源代码的一种,也就是说自由软件的定义较开放源代码更为严格。

并非开放源代码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。

1.自由再发行

许可证不能限制任何团体销售或赠送软件,软件可以是几个不同来源的程序集成后的软件发行版中的其中一个原件。许可证不能要求对这样的销售收取许可证费或其他费用。

2.程序源代码

程序必须包含源代码。必须允许发行版在包含编译形式的同时也包含程序源代码。当产品以某种形式发行时没有包含源代码,必须非常醒目的告知用户,如何通过Internet免费的下载源代码。源代码必须是以当程序员修改程序时优先选用的形式提供。故意地扰乱源代码是不允许的。以预处理程序或翻译器这样的中间 形式作为源代码也是不允许的。

3.派生程序

许可证必须允许更改或派生程序。必须允许这些程序按与初始软件相同的许可证发行。

4.作者源代码的完整性

只有当许可证允许在程序开发阶段,为了调整程序的目的将“修补文件”的发行版与源代码一起发行时,许可证才能限制源代码以更改后的形式发行。许可证必须明确地允许按更改后的源代码所建立的程序发行。许可证可以要求派生的程序使用与初始软件不同的名称或版本号。

5.无个人或团体歧视

许可证不能都有针对任何个人或团体制在专门奋斗领域内的任何人使用该程序。例如不能限制程序应用于商业领域,或者应用于遗传研究。

6.对程序在任何领域内的利用不得有差别待遇

该条款的主要目的是禁止许可证中含有使开放源代码软件无法在商业上使用的规定。我们需要商业用户参与我们的工作,而不让他们感到被排除在外。

7.许可证发行

伴随程序所具有权力必须适用于所有的程序分销商,而不需要这些团体之间再附加许可证签字盖章。

8.许可证不能特制某个产品

如果程序是某个特殊的软件发行版中的一部分,伴随该程序所具有的权力不能只以来于这一发行版。如果程序是从那一发行版中摘录出来的,使用或发行时用的都是那个程序的许可证,分销程序的所有团体都应拥有与初始软件版所允许的所有权力。

9.许可证不能排斥其他软件

许可证不能限制随该许可证软件一起发行的其他软件。例如,许可证不能要求所有与之一起发行的其他软件都是开源软件

10.许可证实例

GNU GPL、BSD、X Consortiun和Artistic许可证都是我们认为符合开源软件定义的许可证。MPL也是一样。

开源软件应用[编辑]

OSI Certified标志被用于软件而不是许可证:人们需要知道的是组成软件的包和它们的许可证是开放的源代码。此外,单独的许可证可能不是"货物",它由美国专利和商标局注册认证标志。但是软件的作者显然必须能够自我认证、在适当的时刻确认他们的软件是按照OSI Certified的开放源代码方式发布的。所以认证按照两步进行:

* OSI提供一个满足开放软件源代码定义的开放源代码许可证表。这些许可证经过公众的详细审查并且被批准。与license-approval @opensource. org联系,它启动了获得许可证批准的程序。

* 如果在软件上设置OSI Certified标志,可以从列表中选择一个获得批准的许可证并根据它发布软件,并且适当地为软件做标志。

使用该标志

你可以在这两种软件的发行上使用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、磁带等媒体上,它们在物理上可以添加能够被人的裸眼所阅读的简短声明,而不影响它们的功能,你必须把完整的声明或简短的声明标注在该媒体上。

* 如果软件的发布是一个包,从而使其中的声明不能被阅读,你必须在包的外面放置完整的声明。

如果不能把以上任何条款用于发布,请与我们联系,我们将把你选择的位置加入本列表。

开源发展缓慢[编辑]

1、中国教育依旧落后

虽然中国的IT职业教育学校和全日制的本专科院校每年可以向中国IT界输入大量的新人,但是整个IT教育依旧处在落后地位。大多数的学校的教学内容非常偏重于B/S程序(比如非常热门的java,.net)这些内容相比真正的开发真的太过简单。如何让学生可以学到更多复杂的程序开发技术是中国教育界多年来始终无法解决的一大问题,如果中国的教育还是跟不上全球的技术发展和全球的消费者行为的话,社区还依然没有机会实现繁荣。

2、个性的缺失是中国oss社区发展最大的悲哀

中国是一个有着五千年文化的传统型国家,个性创新在中国这个特定的环境中并不能得到更好的发展。越来越多的人希望自己可以成为和别人一样的人,这将让这些本有机会个性创新的人才们在他们人生最重要的时刻错过了最重要的事情,所以个性的缺失是中国oss社区发展最大的悲哀。

3、英语水平

目前OSS的概念在国外是最火热的,所以如果没有良好的英语基础是难以推动OSS发展,跟上世界技术潮流的。虽然小学从三年级开始就学习英语,但是相比里最基本的OSS英语基础还有了不小的距离。



链接[编辑]

Wikipedia https://en.wikipedia.org/wiki/open_source
Zhishi.me http://zhishi.me/baidubaike/resource/开放源码
http://zhishi.me/hudongbaike/resource/开放源码
http://zhishi.me/zhwiki/resource/开放源码