什么是开源软件?

您可能没有意识到,但是您每天都在使用开源软件

开发人员在电脑上工作
gilaxia /盖蒂图片社

开源软件(OSS)是一种软件源代码是可见的也可能会被公众所改变打开.当源代码不能被公众看到和改变时,就会考虑它关闭专有的

源代码是软件的幕后编程部分,用户通常不会查看它。源代码列出了软件如何工作以及软件的所有不同特性如何工作的说明。

带有浅景深的屏幕截图中的PHP代码
Getty Images / Scott-Cartwright

用户如何从OSS获益

OSS允许程序员通过发现和修复代码中的错误(bug修复)来合作改进软件,更新软件以使用新技术,并创建新功能。开源项目利益的团体协作方法的用户软件因为错误是固定的速度,添加新功能和更频繁地发布软件更稳定更程序员寻找错误的代码,和安全更新速度比许多专有软件程序实现。

通用公共许可证

大多数OSS使用GNU通用公共许可证(GNU GPL或GPL)的一些版本或变体。想到类似于公共领域的照片的最简单方法。GPL和公共领域都允许任何人修改,更新,并重用某些事情。GPL为程序员和用户提供访问和更改源代码的权限,而公共域会为用户提供使用和调整照片的权限。GNU GP1的GNU部分是指为GNU操作系统创建的许可,一个自由/开放式操作系统,并继续成为开源技术的重要项目。GPL与公共领域之间的主要区别来自GPL的一个限制;修改GPL代码所做的一切都需要保持打开状态。因此,您无法修改GPL计划并销售它。

对用户来说,另一个好处是OSS通常是免费的,然而,对于某些软件程序来说,可能需要额外的费用,比如技术支持。

Linux Vs GNU / Linux

开源从何而来?

虽然协作软件编码的概念在1950年至1960年代的学术界有其根源,但在20世纪70年代和20世纪80年代,法律纠纷等问题导致这种开放的协作方法,用于软件编码丢失蒸汽。专有的软件接管了软件市场,直到Richard Stallman成立了自由软件基金会(FSF)于1985年,将开放或自由软件带回最前沿。概念自由软件指自由,不是成本。自由软件背后的社会运动维护,软件用户应该有自由来看,更改,更新,修复,并添加到源代码,以满足他们的需求,并被允许与他人自由分发或分享它。

FSF在自由和开源软件运动中发挥了形成作用GNU项目.GNU是一个免费操作系统(一组程序和工具指示设备或计算机如何运行的程序),通常用一组工具,库和应用程序发布,它们可以称为版本或分发。GNU与一个名为内核的程序配对,该程序管理计算机或设备的不同资源,包括在软件应用程序和硬件之间来回通信。与GNU配对的最常见的内核是Linux内核,最初由Linus Torvalds创建。此操作系统和内核配对在技术上被称为GNU / Linux操作系统,但通常简单地称为Linux.

Ubuntu GNOME桌面

由于各种原因,包括市场上对“自由软件”真正含义的混淆,“开源”这个替代术语成为使用公共协作方法创建和维护软件的首选术语。在1998年2月由技术出版商Tim O' reilly主持的一次技术领袖特别峰会上,“开源”一词被正式采用。那个月的晚些时候,开源计划(OSI)由Eric Raymond和Bruce Perens创立,这是一个致力于推广OSS的非盈利组织。

FSF继续作为致力于支持用户的自由和与使用源代码相关的权利的宣传和活动家集团。然而,大部分技术行业使用允许公众访问源代码的项目和软件程序的“开源”一词。

Firefox.
commons.wikimedia.org

开源软件是日常生活的一部分

开源项目是我们日常生活的一部分。您可能正在阅读您的手机或平板电脑上的本文,如果是,您可能现在使用开源技术。最初使用来自开源软件,项目和程序的构建块创建iPhone和Android的操作系统。

如果你是在笔记本电脑或台式机上阅读这篇文章,你使用的是Chrome还是火狐浏览器?Mozilla Firefox是一个开源的网络浏览器。谷歌浏览器是一个名为chromium的开源浏览器项目的修改版本 - 但是是由谷歌开发者开始的,他们继续在更新和额外的开发中发挥积极的作用,谷歌已经添加了编程和功能(其中一些不是开源的)到这个基础软件来开发谷歌Chrome浏览器。

互联网是用开源技术建立起来的

事实上,我们所知道的互联网如果没有OSS就不会存在。帮助建立万维网的技术先驱使用开源技术,如Linux操作系统和Apache网络服务器,来创建我们的现代互联网。Apache网络服务器是OSS程序,它处理特定网页的请求(例如,如果你点击一个你想访问的网站的链接),找到并把你带到那个网页。Apache web服务器是开源的,由开发人员志愿者和非营利组织Apache软件基金会的成员维护。

开源正在重新创建和重塑我们的技术和我们的日常生活,我们往往没有意识到。为开源项目提供贡献的全球程序员社区,继续增长OSS的定义,并增加了它为我们社会带来的价值。

这个页面有用吗?