当前位置: > Linux编程 >

什么是开源?

时间:2017-06-21 08:32来源:linux.it.net.cn 作者:IT
本文导航
-什么是开源软件?05%
-开源软件和其它类型的软件有什么不同?09%
-开源软件只是对开发者很重要?29%
-为什么人们更倾向于使用开源软件?47%
-“开源”不是只是意味着某样东西是免费的吗?65%
-什么是“在软件之外”的开源?



开源open source”这个词,指的是事物规划为可以公开访问的,因此人们可以修改并分享。

这个词最初是起源于软件开发中,指的是一种开发软件的特殊形式。但到了今天,“开源”已经泛指一组概念——就是我们称之为的“开源的方式”。这些概念包括开源项目、产品,或是自发倡导并欢迎开放变化、协作参与、快速原型、公开透明、精英体制以及面向社区开发的原则。

什么是开源软件?

开源软件的源代码任何人都可以审查、修改和增强。

源代码source code”是软件中大部分计算机用户都没见过的部分,程序员可以修改代码来改变一个软件(“程序”或“应用”)工作的方式。程序员如果可以接触到计算机程序源代码,就可以通过添加功能或修复问题来改进这个软件。

开源软件和其它类型的软件有什么不同?

有些软件只有创建它的人、团队、组织才能修改,并且控制维护工作。人们称这种软件是“专有proprietary”或“闭源closed source”软件。

专有软件只有原作者可以合法地复制、审查,以及修改这个软件。为了使用专有软件,计算机用户必须同意(通常是在软件第一次运行的时候签署一份显示的许可)他们不会对软件做软件作者没有表态允许的事情。微软 Office 和 Adobe Photoshop 就是专有软件的例子。

开源软件不一样。它的作者让源代码对其他人提供,需要的人都可以查看、复制、学习、修改或分享代码。LibreOffice 和 GIMP 是开源软件的例子。

就像专有软件那样,用户在使用开源软件时必须接受一份许可证的条款——但开源许可的法律条款和专有软件的许可截然不同。

开源许可证影响人们使用、学习、修改以及分发的方式。总的来说,开源许可证赋予计算机用户按他们想要的目的来使用开源软件的许可。一些开源许可证(人们称之为左版copyleft”)规定任何发布了修改过的开源软件的人,同时还要一同发布它的源代码。此外,另一些开源许可规定任何修改和分享一个程序给其他人的人,还要分享这个程序的源代码,而且不能收取许可费用。

开源软件许可证有意地提升了协作和分享,因为它们允许其他人对代码作出修改并将改动包含到他们自己的项目中。开源许可证鼓励开发者随时访问、查看、修改开源软件,前提是开发者在分享成果的时候允许其他人也能够做相同的事情。

开源软件只是对开发者很重要?

不。开源技术和开源思想对开发者和非开发者都有益。

因为早期的创造者基于开源技术构建了互联网本身的大部分——比如 Linux 操作系统和 Apache Web 服务器应用——任何今天使用互联网的人都受益于开源软件。

每当计算机用户浏览网页、检查邮件、和朋友聊天、在线收听流媒体音乐、玩多人游戏的时候,他们的电脑、手机或游戏主机都会连接到一个全球性的计算机网络,使用开源软件来路由并将他们的数据传输到面前的“本地”设备上。完成这些重要工作的计算机通常位于很远的地方,用户不会实际看到或物理接触到它们——所以有些人称之为“远程计算机”。

越来越多的人开始依赖于远程计算机,在可以在本地完成的任务在线完成。举个例子,人们可能会使用在线文字处理、电子邮件管理、图片编辑工具,而在本地的个人电脑并没有安装运行相应的软件。人们轻松地使用浏览器或手机应用访问这些程序。当他们这么做的时候,他们参与到了“远程计算”中。

一些人将远程计算称为“云计算”,因为它涉及的活动(像是存储文件、分享照片、观看视频)不仅包含本地设备,还有一个远程计算机全球网络,像是围绕在周围的大气。

云计算是日常生活一个越来越重要的概念,离不开连接互联网的设备。一些云计算应用,比如 Google 应用,是专有的。其它的,像 OwnCloud 和 NextCould 是开源的。

云计算应用运行在一些额外的软件“之上”,这些软件帮助它们流畅高效地操作,所以人们经常说那个软件运行在云计算应用“之下”,为那些应用扮演一个“平台”。云计算平台可以是开源或闭源的。OpenStack 是一个开源云计算平台的例子。

为什么人们更倾向于使用开源软件?

人们相对于专有软件更倾向于开源软件有很多原因,包括:

可控。很多人青睐开源软件因为相对其它类型软件他们可以拥有更多的可控。他们可以检查代码来保证它没有做任何不希望它做的事情,并且可以改变不喜欢的部分。不是开发者的用户也可以从开源软件获益,因为他们可以以任何目的使用这个软件——而不仅仅是某些人认为他们应该有的目的。

训练。其他人喜欢开源软件是因为它可以帮助他们成为更好的开发者。因为开源代码可以公开访问,学生可以在学习创建更好的软件时轻松地从中学习。学生还可以在提升技能的时候分享他们的成果给别人,获得评价和批评。当人们发现程序源代码中的错误的时候,可以将这个错误分享给其他人,帮助他们避免犯同样的错误。

安全。一些人倾向开源软件是因为他们认为它比专有软件更安全和稳定。因为任何人都可以查看和修改开源软件,就会有人可能会注意到并修正原作者遗漏的错误或疏忽。并且因为这么多的开发者可以在同一开源软件上工作,而不用事先联系获取原作者的授权,相比专有软件,他们可以更快速地修复、更新和升级开源软件。

稳定。许多用户在重要、长期的项目中相较专有软件更加青睐开源软件。因为开发者公开分发开源软件的源代码,如果最初的开发者停止开发了,关键任务依赖该软件的用户可以确保他们的工具不会消失,或是陷入无法修复的状态。另外,开源软件趋向于同时包含和按照开放标准进行操作。

“开源”不是只是意味着某样东西是免费的吗?

不。这是个“开源”实践中的常见误解,“开源”概念的含义不只是指经济方面的。

开源软件开发者可以为他们创建或贡献的开源软件收取费用。但在一些情况下,由于开源许可证可能会要求他们在将软件卖给他人的时候发布源代码,一些开发者发现向用户收取软件服务和支持(而不是软件本身)的费用会更加合算。通过这种方式,他们的软件仍然保持免费,而他们从帮助他人安装、使用、解决问题中赚取费用。

尽管一些开源软件可能是免费的,但开源软件的编程和解决问题的技能可能十分有价值。许多雇主特别寻求雇佣在开源软件方面有工作经验的开发者。

什么是“在软件之外”的开源?

在 Opensource.com,我们想说我们对于开源价值和原则应用到软件之外领域的方式很有兴趣。我们更愿意不仅将开源视为一种计算机软件开发和许可的方式,也把它视作一种态度。

实现“开源方式”的生活的各个方面,意味着表达一种分享的意愿,通过透明的方式和他人协作(这样其他人也可以关注和加入),拥抱失败,将它作为一种改进的手段,以及期待(甚至鼓励)所有人都可以这么做。

这也意味着在让世界变得更好的过程中扮演一个积极的角色,这只有在每个人都可以接触到对世界进行规划的途径时才有可能。

这个世界充满了“源代码”——蓝图、食谱、规则——它们引导和塑造我们思考和行动的方式。我们相信这些深层代码(无论是什么形式)应该是开放、可接触、分享的——这样人们可以参与其中并让它变得更好。

在这里,我们诉说开源价值对生活所有领域的影响的故事——科学、教育、政府、工业、健康、法律,以及组织动态。我们是一个社区,告诉他人开源的方式如何成为最好的方式,因为对开源的爱和其它一样:当它被分享的时候它会变得更好。

在哪里能够获得关于开源的更多信息?

我们编辑了一些资源来帮助你学到更多关于开源的内容。我们推荐你从阅读我们的开源问答、指南、教程开始。

via: https://opensource.com/resources/what-open-source


(责任编辑:IT)
------分隔线----------------------------