目录

foss测试_什么是开源软件-开源和FOSS解释

foss测试_什么是开源软件? 开源和FOSS解释

foss测试

您使用的每个软件的基础都是源代码,该源代码发出命令并处理允许软件做其工作的数据。 谁应该有权查看,更改或重新分发源代码这一问题长期以来一直是计算机界在思想上的根本分歧之一。

顾名思义,开源软件的支持者来自开放性方面。 他们认为人们应该有权访问他们使用的软件的源代码。 但是,正如我们将看到的那样,实际上,该标签下有很多种类。 您可以想到的每个细分市场中都存在各种各样的开源软件-实际上,开源软件在其中很多方面都占主导地位。

[发现 用于软件开发,机器学习,云计算以及数据存储和分析。 ]

什么是开源软件,什么是自由软件,它们有何不同?

开源软件的简洁定义是可以检查,更改和重新分发其基础代码的软件。 (稍后我们将得到一个更长更正式的定义。)“更改和重新分发”的部分对于开源哲学确实很关键。 尽管名称可能暗示,只是打开源代码以便人们查看它并不能使其开源。

在某些方面,术语“开源软件”是一种 :在早期的几十年计算机科学,软件的源代码是可以作为理所当然的事,并研究人员和工业界的科学家之间自由交换。 计算机数量很少,而且相距甚远,并且期望用户对其进行广泛的修改,因此人们需要访问代码。 在许多方面,软件被视为计算机硬件的附加组件。 直到1974年才 。 但是随着1970年代末期的微型计算机时代的来临,该行业开始转向这样一种立场,即软件本身具有金钱价值,并且可以而且应该限制对底层代码的访问以保护软件创建者的权利。 比尔·盖茨(Bill Gates)在 抱怨微软第一款产品Altair BASIC解释器的广泛盗版,是这一转变的分水岭。

在Swift发展的软件行业Swift吸收了这些新想法的同时,一些人则反对它们。 最早的反对者之一是Richard Stallman,他于1985年创立了 (FSF)。自由软件中的“自由”旨在表示用户可以随意更改和分发代码。 从这个意义上说,没有任何规则禁止免费软件收费。 通常将“免费啤酒中的自由”和“言论自由中的自由”区分开来,后者是自由软件。

尽管如此,自由软件的想法还是让私营行业的许多人感到不安,因为他们毕竟不热衷于提供东西。 1998年,克里斯汀·彼得森 Christine Peterson) ,部分目的是使新想法,尤其是在营利性公司工作的新想法更易获得。 尽管Stallman ,说它偏离了自由软件的原始政治和哲学思想,但它已成为描述该概念的主要用语。 自由和开源软件的维恩图有足够多的重叠,以至于有时两者以缩写FOSS(自由和开源软件)结合在一起 通常,所有免费软件都是开源的,尽管一小部分开源软件具有许可条款,这意味着它不是免费的(此刻更多关于开源许可的信息)。

自由和开源软件的概念引起了另一个重新定义:“专有软件 ,即不是开源的任何软件。

开源软件许可证

开源软件涉及的所有权利和责任均由分发软件的许可证确定。 随着确立了受版权保护的软件的法律学说,开始编写软件许可,以在版权所有者和用户之间提供合同,从而使用户获得在个人计算机上执行软件的许可。

最初存在软件许可证是为了限制用户行为并保护软件制造商的权利。 但是自由软件的倡导者意识到,他们可以颠覆许可证的初衷:软件包的许可证可以要求使用该软件的任何人都可以使用基础代码,并且用户有权编辑和重新分发该代码。 第一个开放源代码软件许可证(尽管早于该术语)可能是 ,该 于1985年发布,用于由FSF的Stallman编写的Emacs文本编辑器版本。

从那时起,免费和开放源代码许可的数量激增,每种许可使用许可代码的条款略有不同。 Wikipedia 。 根据定义,这些开源许可证中的任何一个都授予用户三个基本的自由,使其能够读取,编辑和重新分发源代码。 它们之间的主要区别在于对重新分配施加的条件:

  • 许可许可证 允许您重新分配任何源代码,只要您认为合适即可。 例如,您可以获取在许可许可下发布的源代码,将其合并到自己的软件中,然后在专有许可下发布该软件。 BSD许可证是最著名的许可许可证之一。
  • Copyleft许可证 要求任何包含许可代码的重新分发代码也必须在类似的许可证下发布。 来自FSF的GNU公共许可证(GPL)的各种版本都是Copyleft许可证,其目标是要求开发人员通过共享在其项目中集成开放源代码所获得的收益来向前支付。

有趣的是,这些许可证背后的思想已经超越了软件领域。 是用于将类似术语应用于书面或视觉艺术作品的法律基础设施。

开源定义和开源计划

开源本质上不受任何单一实体或组织的控制。 1998年,包括布鲁斯·佩伦斯(Bruce Perens)和埃里克·雷蒙德(Eric S. Raymond)在内的一些著名开发人员成立了 (OSI),这是一个非营利性组织,致力于在更大的软件行业中倡导开源。 OSI在1999年 ; 但是,按照共识,它们的正式 是该框架的所有自称开源的许可都遵循。 除了我们已经讨论过的检查,修改和重新分发代码的自由之外,开放源代码定义还禁止歧视特定群体或个人的许可证,这些许可证会阻止将代码用于特定目的或特定领域,或在特定设备或类型的设备上运行。

开源开发和开源项目

从大学到大公司,使用开源代码进行的开发在各种环境中进行,并且通常遵循与其他任何类型的软件开发相同的模式。 但是,有一种特定的开放式社区开发过程与开源相关联。 埃里克·雷蒙德(Eric S. Raymond)在他的有影响力的文章“ ”中概述了他对这一过程的愿景,即任何人都可以访问代码,并且由分布广泛的开发人员组成的小组将更新添加到代码库中。他们的兴趣决定了。

这种类型的开源开发是围绕开源项目组织的 这些有时在单个软件上工作,有时在整个相关的应用程序集上工作。 版本控制软件使每个人的贡献保持一致。 可能是最受欢迎的。

开源项目有时有时是由一个人开始的,通常是自组织的小型互联网社区,尽管任何人都可以为任何项目做出贡献,但大多数项目通常都是由 。 有时,某个项目可能是由一家计划使用其生产的软件的营利性公司赞助的,甚至还可以使该项目最杰出的开发人员进入工资单。

开源示例

开源软件实际上无所不在,并为现代Internet奠定了许多基础。 也许最著名的开源项目是 ,它是为数百万服务器提供支持的Unix开源变体。 其他突出且极为关键的项目包括 , 和 。 从 到Microsoft的众多开发框架都以开源形式发布。 。

开源在生产面向普通用户的家用计算机软件方面不太成功。 尽管Microsoft Word和Adobe Photoshop等专有软件包的成本很高,但像 和 这样的开放源代码同行却从未在顽固的发烧友中找到合适的市场,这在很大程度上是因为开放源代码社区传统上优先考虑功能和灵活性而不是易用性。用。 (来自专有供应商的文件格式锁定无济于事。)甚至Linux的倡导者 就一直宣称开源OS距离主导台式机仅一年之遥,但从未真正地跳槽到Linux。消费空间。 通常,开放源代码用于基础设施的使用远远超过最终用户软件。 但是,从本地运行的整体软件到 ,因为基于云的基础架构主要基于开源主导的堆栈。

还记得我们所说的支持开源的营利性公司吗? 通常,这些项目是在许可的许可下生产的,因此,这些公司可以将开源代码作为其专有产品的核心,同时作为社区项目并行维护一个单独的开源代码库。 例如,Android移动操作系统以Linux为核心。 苹果公司的所有移动和桌面操作系统都基于 , 是最初源自BSD Unix的开源操作系统。 甚至Google的Chrome都是基于名为 开源浏览器。

开源社区和开源运动

开源不仅仅是一个开发过程; 这是人们热衷的哲学,也是一个具有编程技能的人都可以加入的社交社区。 实际上,就像Linux Foundation所说的那样,它是整个 。 (Linux基金会和OSI等非营利组织的存在是该社区的重要方面。)Florian Effenberger着有大量关于 。

您会经常听到人们谈论开源或自由软件运动,其中包含政治和倡导的含义。 开放源代码社区中的许多人出于各种原因推动开放源代码软件的广泛采用:他们认为开放源代码固有地会产生更好的代码,或者他们认为访问源代码是计算机用户应享有的一项基本权利,或两者的某种组合。 如今,社区的这一方面似乎不那么明显了,但这也许是因为开源在许多方面都赢得了胜利。 早在2001年,时任微软首席执行官的史蒂夫·鲍尔默(Steve Ballmer)表示,由于其开放源代码许可,Linux是“ 。” 如今,Microsoft已成为 的广泛 。 简而言之,这就是开源历史的最后二十年。

开源软件下载

想要开始浏览和修改开源项目吗? 请查看 , 或 。 任何技能水平的好奇者都有很多。

翻译自:

foss测试