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

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

[发现Bossie奖的获得者:2018年最佳企业开源软件,用于软件开发,机器学习,云计算以及数据存储和分析。 ]

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

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

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

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

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

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

开源软件许可证

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

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

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

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

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

开源定义和开源计划

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

开源开发和开源项目

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

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

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

开源示例

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

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

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

开源社区和开源运动

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

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

开源软件下载

想要开始浏览和修补开源项目吗? 请查看opensource.com的“项目和应用程序”页面 , GitHub的“浏览”选项卡或“开源开发网络”的“软件地图” 。 任何技能水平的好奇者都有很多。

From: https://www.infoworld.com/article/3429076/what-is-open-source-software-open-source-and-foss-explained.html

什么是开源软件? 开源和FOSS解释相关推荐

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

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

  2. 用了这么久开源社区,还搞不明白免费/自由/开源软件?

    在开源社区中,有很多人经常把免费软件.自由软件.开源软件这三个概念混淆在一起. 今天就来和大家谈谈这三个软件到底有什么不一样. 免费软件 用户可以免费使用该软件,但通常会有其他权限的限制: 1.源码不 ...

  3. 自由和开源软件法律报告(中国)

    前言 自由开源软件(Free and OpenSource Software, FOSS)是自由软件(Free Software)和开源软件(Open Source Software)的统称.20世纪 ...

  4. 开源软件之七宗罪以及背后的阴谋

    编者注:本文由 @七液 原创撰写 我们每天使用着大量的开源软件,我们歌颂她赞美她.当有人站出来说一句开源不好 肯定会激起N多人站出来批评.然后给你列举出N多开源的好处和闭源的坏处. 首先我不反对开源, ...

  5. 转开源软件之七宗罪以及背后的阴谋

    编者注:本文由 @七液 原创撰写 我们每天使用着大量的开源软件,我们歌颂她赞美她.当有人站出来说一句开源不好 肯定会激起N多人站出来批评.然后给你列举出N多开源的好处和闭源的坏处. 首先我不反对开源, ...

  6. linux开源游戏_2014年杰出的开源和Linux游戏

    linux开源游戏 您好,开放游戏迷! 在本周的版本中,我们回顾了2014年涵盖开源和Linux游戏的所有新闻和故事! 游戏硬件 2014年,我们在这个主题上进行了相当多的报道.我们从OpenPand ...

  7. 从一个“仅为”$1Bn的开源数据库IPO,聊聊开源和infra的现在与未来

    | 作者:M小姐走四方 | 转载自:M小姐研习录 | 编辑:钱英宇 | 设计:周颖 | 责编:王玥敏 前段时间开源和 infra 人被 Confluent IPO 还有一系列的 mega rounds ...

  8. 开源和devops_2016年开源工作报告:需要开发人员,DevOps和认证

    开源和devops Linux Foundation和Dice.com合作调查了近5,000名开源专业人士,本周他们公布了2016年开源工作报告 . 2016年的调查包括来自全球400多名招聘经理和4 ...

  9. 如何让开源多点成功的几率;开源和 COVID-19: 道高一尺魔高一丈;等开源之道每周评论2020 04 07...

    ▼ 更多精彩推荐,请关注我们 ▼ 声明:本文所言论,仅代表适兕个人观点 文章评论 避免边缘化:开源软件如何成功? 原文链接:Avoiding the ragged edge: How open-sou ...

  10. foss测试_FOSS简介(免费和开源软件)

    foss测试 免费软件 (Free Software) Firstly, we need to know what exactly free software is, when we talk abo ...

最新文章

  1. java进程未正常退出
  2. OpenCV使用G-API的人脸分析管道
  3. Linux字符串三剑客笔试题集合
  4. 客制化键盘键位修改_干电池 支持5设备无线连接 - 高斯ALT71机械键盘拆解评测...
  5. android 动态修改菜单,如何在Android的“选项”菜单上更改MenuItem?
  6. Study之2 Glance相关操作-devstack
  7. linux 设置pip 镜像 Pip Warning:–trusted-host 问题解决方案
  8. 重做 oracle_Oracle数据库基本知识(1)-数据库(1)
  9. warning C4995: “....”: 名称被标记为 #pragma deprecated
  10. loss低但精确度低_目标检测中的Loss改进:GIOU
  11. python 执行dos命令_对python中执行DOS命令的3种方法总结
  12. 2021-09-14联想云教室连接不上服务器解决办法
  13. idea 背景图插件
  14. 了解算法交易,此篇足矣
  15. 从烂漫少女到已为人母:八年青春 梦断互联网
  16. 清华大学推荐:这32本书籍你看过几本?
  17. 2019-10-06 因果系统的理解
  18. 南方的X-Men看过来〜Cocos2d-x开发者沙龙(广州站)即将举办!
  19. Swift-ScrollView轮播图的简易封装和使用
  20. lbe+android6.0+免root,LBE安全大师(免ROOT)

热门文章

  1. SUDOKU-数独游戏
  2. 《零边际成本社会》书中的精髓:零边际成本所引发的共享经济,将颠覆资本主义和社会主义。
  3. OC集成Socket.IO时,出现错误: No such module 'Starscream' 的解决办法
  4. lan和adsl是什么信号_光纤、以太网、ADSL上网有什么区别?
  5. Python轻松制作王者荣耀自动刷金币脚本
  6. VMware Workstation for Windows 历史版本
  7. html表格填充空白单元格,快速填充数据表格中的空白单元格
  8. 数据库中反引号的作用
  9. js的延迟执行 async defer/ js的数据类型全/ null和undefined区别/=、==、===的区别/js中的宏任务和微任务js的作用域附带试题有答案
  10. Android 通讯录的实现,根据拼音首字母快速索引到名字