什么是开源软件?

你可能没有意识到它,但几乎每天都使用开源软件

开放源代码软件(OSS)是公众可以查看和更改源代码或以其他方式“打开”的软件。 当源代码不被公众查看和更改时,它被认为是“关闭”或“专有”。

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

用户如何从OSS中受益

OSS允许程序员通过查找和修复代码中的错误(错误修复),更新软件以使用新技术以及创建新功能来协作改进软件。 开源项目的团队协作方法使软件用户受益,因为错误修复速度更快,新功能的添加和发布更加频繁,软件更稳定,更多程序员可以在代码中查找错误,并且安全更新的实施更快比许多专有软件程序。

大多数OSS使用GNU通用公共许可证(GNU GPL或GPL)的一些版本或变体。 最简单的方式来考虑类似于公共领域的照片的GPL。 GPL和公共领域都允许任何人修改,更新和重用他们需要的东西。 GPL为程序员和用户提供访问和更改源代码的权限,而公有领域允许用户使用和修改照片。 GNU GPL的GNU部分是指为GNU操作系统创建的许可证,这是一个自由/开放的操作系统,并且一直是开源技术中的重要项目。

用户的另一个好处是OSS通常是免费的,但是,对于一些软件程序,可能会有额外的成本,例如技术支持。

开源来自哪里?

尽管协作式软件编码的概念源自1950 - 1960年代的学术界,但到了20世纪70年代和80年代,诸如法律纠纷等问题引发了这种开放式协作方法,使软件编码失去了动力。 专有软件接管了软件市场,直到Richard Stallman于1985年创立自由软件基金会(FSF),将开放或自由软件带回到最前沿。 “自由软件”的概念是指自由而不是成本。 自由软件背后的社会运动认为,软件用户应该有自由地查看,更改,更新,修复和添加源代码以满足他们的需求,并被允许分发或与他人自由分享。

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

出于各种原因,包括市场上对“自由软件”真正意义上的混淆,替代术语“开源”成为使用公共协作方法创建和维护的软件的首选术语。 术语“开源”于1998年2月由技术出版商Tim O'Reilly主持召开的技术思想领袖峰会上正式通过。 那个月晚些时候,开源倡议(OSI)由Eric Raymond和Bruce Perens成立,作为一个致力于推广OSS的非营利组织。

FSF继续作为一个倡导和激进组织,致力于支持用户使用源代码的自由和权利。 然而,许多技术行业使用术语“开源”来表示允许公众访问源代码的项目和软件程序。

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

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

如果您在笔记本电脑或台式机上阅读本文,是否将Chrome或Firefox用作Web浏览器? Mozilla Firefox是一款开源的网页浏览器。 Google Chrome是一个名为Chromium的开源浏览器项目的修改版本 - 尽管Chromium由Google开发人员发起,他们继续在更新和额外开发中发挥积极作用,但Google添加了编程和功能(其中一些未开放源)到此基础软件来开发Google Chrome浏览器。

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

开源正在以我们通常不知道的方式重塑和重塑我们的技术和日常生活。 为开源项目做出贡献的全球程序员社区继续发展OSS的定义并增加它为我们社会带来的价值。