当前位置: 首页 > article >正文

开源是什么?我们为什么要开源?

本片为故事类文章推荐听音频

软件自由运动的背景

梦开始的地方

20世纪70年代,软件行业处于早期发展阶段,软件通常与硬件捆绑销售,用户对软件的使用、修改和分发权利非常有限。随着计算机技术的发展和互联网的普及,越来越多的开发者和用户开始意识到这种封闭模式的局限性。

起因

自由软件运动的发起人,毕业于哈佛大学与麻省理工大学的理查德·斯托曼(Richard Stallman) ,对当时软件垄断和封闭源代码的做法感到不满,认为这限制了软件的创新和发展。他于1983年发起了GNU项目,旨在开发一个自由的类Unix操作系统。1985年,斯托曼成立了自由软件基金会(FSF),以推动自由软件的开发和推广。

过程

  • GNU项目的发起:1983年,理查德·斯托曼宣布GNU项目,目的是创建一个完全自由的类Unix操作系统。
  • 自由软件基金会(FSF)的成立:1985年,为了支持自由软件运动,FSF成立。
  • Linux内核的发布:1991年,林纳斯·托瓦兹(Linus Torvalds)发布了Linux内核,这是自由软件运动的一个重要里程碑。

  • 开源软件运动的兴起:1998年,开源软件运动从自由软件运动中分化出来,更注重软件的实用优势而非道德和社会问题。

结果

自由软件运动诞生了许多重要的软件,包括但不限于:

  • GNU/Linux:自由的类Unix操作系统。
  • GCC(GNU Compiler Collection):支持多种编程语言的编译器。
  • Emacs:功能强大的文本编辑器。
  • Bash(Bourne Again Shell):命令行解释器。
  • Apache:广泛使用的Web服务器软件。
  • Firefox:网页浏览器。
  • Vim:文本编辑器。
  • GIMP:图像编辑器。
  • VLC:媒体播放器。

这些软件都遵循自由软件许可证,允许用户自由使用、修改和分发。

矛盾点

自由软件运动的矛盾点主要包括:

  • 自由与效率的张力:去中心化的自由需要高昂的维护成本,而中心化平台通过牺牲部分自由提升可用性。
  • 理想主义与资本渗透:大公司通过收购和赞助将开源转化为其商业战略的一部分,形成新的技术殖民模式。
  • 许可证与基础设施的权力转移:许可证约束代码使用,但云厂商可以绕开分发环节直接提供服务,GitHub 的闭源性(Github本身是闭源的)也展现了权力集中的问题。
  • 用户自由与开发者自由的分歧:自由软件强调用户自由,而开源软件更强调开发者的自由,这可能导致实践中的冲突和模糊性。
  • 自由软件与开源软件的冲突:自由软件运动的初衷是保护用户自由,但开源软件更注重协作和创新,这可能导致目标偏离。
  • 普通用户对开源软件的误解开源并不代表免费如果有需要,开源作者理所应当可以收取软件授权费用

影响

自由软件运动对社会和技术领域产生了深远影响:

  • 打破垄断:自由软件运动打破了传统软件产业的垄断格局,使得更多的企业和个人能够参与到软件的开发和创新中来。
  • 促进创新:开放和协作的模式极大地加速了技术的进步和创新的速度。
  • 影响政府采购:越来越多的国家开始意识到自由软件的重要性,将其视为降低成本、提高安全性、促进技术创新的重要手段。
  • 提高数据安全和隐私保护:随着人们对数据安全和隐私保护意识的提高,自由软件在保障信息安全方面发挥了更大的作用。
  • 推动新兴技术发展:自由软件在云计算、物联网等新兴技术领域中扮演了重要角色。

作者的话:本文虽然没有直接回答标题的内容,但是我相信看完后心中必定会有答案

http://www.lryc.cn/news/2395055.html

相关文章:

  • 【unity游戏开发——编辑器扩展】EditorApplication公共类处理编辑器生命周期事件、播放模式控制以及各种编辑器状态查询
  • elasticsearch低频字段优化
  • React---day3
  • PyCharm接入DeepSeek,实现高效AI编程
  • 前端面经 get和post区别
  • CTFSHOW-WEB-36D杯
  • MySQL connection close 后, mysql server上的行为是什么
  • RabbitMQ vs MQTT:深入比较与最新发展
  • 金砖国家人工智能高级别论坛在巴西召开,华院计算应邀出席并发表主题演讲
  • 【KWDB 创作者计划】_再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践
  • CentOS 7 安装docker缺少slirp4netnsy依赖解决方案
  • Android第十一次面试多线程篇
  • 安全,稳定可靠的政企即时通讯数字化平台
  • craw4ai 抓取实时信息,与 mt4外行行情结合实时交易,基本面来觉得趋势方向,搞一个外汇交易策略
  • Linux之守护进程
  • LiquiGen流体导入UE
  • 使用react进行用户管理系统
  • SpringBoot的java应用中,慢sql会导致CPU暴增吗
  • Ubuntu下编译mininim游戏全攻略
  • uniapp uni-id Error: Invalid password secret
  • 用 Appuploader,让 iOS 上架流程真正“可交接、可记录、可复用”:我们是这样实现的
  • 第十二节:第三部分:集合框架:List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
  • 【办公类-18-07】20250527屈光检查PDF文件拆分成多个pdf(两页一份,用幼儿班级姓名命名文件)
  • AI Agent的“搜索大脑“进化史:从Google API到智能搜索生态的技术变革
  • Arduino学习-跑马灯
  • python创建args命令行分析
  • 2. 手写数字预测 gui版
  • js数据类型有哪些?它们有什么区别?
  • 大模型应用开发第五讲:成熟度模型:从ChatGPT(L2)到未来自主Agent(L4)
  • 特别篇-产品经理(三)