美国政治传播学家拉斯韦尔提出了5W传播模式,经过后人的不断运用和发展总结,形成了一套逐渐成熟的“5W1H”体系,即:对选定的项目、工序或操作,都要从原因(何因Why)、对象(何事What)、地点(何地Where)、时间(何时When)、人员(何人Who)、方法(何法How)等六个方面提出问题进行思考。

本系列文章就以5W1H体系来讲一讲开源的那些事。这一次,讲讲开源的Who——谁“发明”了开源以及开源的起源。

微软的一封信

自上世纪第一台计算机问世以来,计算机产业是以硬件为主的商业模式,即硬件销售为主要收入来源,附带的软件并不收费且附有源代码,便于专业人员调试和修改。虽然现在都将软件著作权视为司空见惯,但当时的法律并不能给予这一新生事物充足的保护。后来,随着个人电脑的普及,人们对软件的需求扩大,出现了一批专门开发通用软件的公司,这样的软件公司需要对软件收费来获取利润。但软件收费与提供源代码显然是矛盾的,因为只要仍然提供源代码,就无法阻止用户或者竞争对手复制或改写软件代码。

1976年2月3日, Bill Gates发表了著名的《Open Letter to Hobbyists》(致电脑业余爱好者的一封公开信),在这封公开信中,Bill Gates明确提出软件应该具有“CopyRight”(版权)。这封公开信奠定了软件产品“CopyRight”的理论基础,也促使私有软件成为软件产业发展的主流。“Copy Right”理念的提出,必然导致源代码被彻底被封闭起来。

客观地讲,Bill Gates的“Copy Right”理念以及私有软件的兴起,对于推动软件产业的兴旺功不可没。但是,Microsoft等私有软件厂商对于软件市场的垄断,引发了用户和广大软件开发者的强烈不满,兴起了反对私有软件理念的运动,开源软件就是这种运动的重要组成部分。首先兴起的私有软件运动,是自由软件运动(Free Software Movement),它是开源软件运动的先河。

自由软件运动

一些人对于软件从免费转向收费并且不再提供源代码这一现象感到不适应或不满,其中最著名的就是发起了自由软件运动的Richard Stallman。70年代的Richard在MIT的AI(人工智能)实验室做程序员。施乐的打印机不再提供源代码,Richard无法像以前通过修改代码来解决打印机故障;Richard向商业公司提供了LISP编译器的公共代码,但该公司拒绝分享扩充和改进后的代码。这两件事促使Richard辞职,投入到自由软件运动中。

1983年,Richard 开始倡导自由软件运动。1985年,Stallman等人创建了自由软件基金会(Free Software Foundation,简称FSF)。Stallman提出了与“Copy Right”理念针锋相对的“Copy Left”(许可复制权)理念,其表现形式是GPL,即公共许可证(General Pubic License)。自由软件应该是具有如下4大自由的软件:

出于任何目的运行该软件的自由;
有研究该软件如何运行并加以改进使之更符合自己需要的自由;
有重新发布以帮助邻里的自由;
有改善程序,公布改进方案(以及通常的修订版)以推动整个社区利益的自由。

时间来到1991年,自由软件基金会已经开发了GNU操作系统的大部分组件(例如编译器、编辑器、用户界面等),但是仍然未完成作为操作系统核心的内核,即GNU Hurd。

完成操作系统内核的任务是在一个21岁的芬兰大学生Linus Torvalds的带领下完成的。出于个人兴趣和测试目的,Linus于1991年9月编写了0.01版的Linux内核,而该版内核甚至还无法运行。不过1个月后他就写出了0.02版,该版本已可以运行各种GNU组件了(所以Linux也常被称为GNU Linux)。在0.02版后,来自世界各地的程序员们加入到了Linux内核的开发中,使其迅速完善。在1992年2月释放0.12版时,Linus将Linux内核的许可证改为GPL许可证第二版,并一直保持至今。1994年3月,1.00版Linux内核开发完成。

正是 Linux 的出现,使得自由软件运动有了自己可以与 Microsoft 的 Windows 相抗衡的操作系统。自由软件运动初战告捷。但是,自由软件运动关于自由的追求,毕竟和现实的商业氛围格格不入,带有着过于理想化的色彩。这种反商业的信条,让一些本来也反对私有软件的人士对自由软件敬而远之。正是在这种背景下,一部分原有自由软件运动人士,开始尝试将理想的自由软件与现实的商业氛围进行某种衔接。

开源软件

1998 年2月,Richard Stallman、Eric Raymond等人在美国加州成立了一个名为开源促进会(Open Source Initiative,简称 OSI)的组织,旨在推广开源软件。为了减少意识形态上的沟壑,以及「自由(Free)」一词造成免费软件的误解。OSI 组织决定从「自由软件」中去掉了「自由」一词,使用「开源软件」(Open Source Software)作为共通名称,并创建了自己的开放源码的定义,以及自己的一套许可证。根据开源促进会的标准,开源软件可以使用非著佐权(copyleft)性质的宽松(permissive)许可证,允许该许可证下的代码的衍生代码闭源。

用一句话概括,开源软件就是源代码开放且可以自由复制的软件。开源软件运动的理念更倾向于解决实际问题,既抓住了私有软件的痛点,又实现了与商业的融合。

5W1H聊开源之Who——谁“发明”了开源?相关推荐

  1. 5W1H聊开源之Who和How——谁、如何参与开源?

    上次Who的主体是谁"发明"了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中? 很多人都以为参与开源是一件 ...

  2. 5W1H聊开源之What——开源是什么?

    美国政治传播学家拉斯韦尔提出了5W传播模式,经过后人的不断运用和发展总结,形成了一套逐渐成熟的"5W1H"体系,即:对选定的项目.工序或操作,都要从原因(何因Why).对象(何事W ...

  3. 腾讯开源负责人许勇:未来开源计划重点是AI和服务小程序生态

    导读:2018年6月25日,Linux 基金会,集结世界顶级开发者的非营利开源组织,宣布腾讯成为基金会的最新白金会员.在开源领域,腾讯的贡献正逐步增长,日益成为社区活跃一员.在与社区机构互动上,腾讯广 ...

  4. 开源erp_大公司为何使用开源ERP

    开源erp 大型公司使用开源企业资源计划(ERP)系统的主要原因是因为它们更便宜且更易于定制. 在许多情况下,当您为大型组织实施开源ERP系统时,会在核心系统之外创建新的界面外壳,以满足业务需求和与公 ...

  5. 「开源·共创·照亮」TDengine开源两周年暨灯塔计划发布会邀你一起闪耀

    近几年,是开源的黄金时代,许多优秀的开源项目源源不断地涌现出来.很庆幸,TDengine 就出生一个这样的时代. 2019 年 7 月 12 日,作为一款专为物联网.车联网.工业互联网.IT运维等设计 ...

  6. 中国开源先驱的力与梦——开源六君子的黄金时代

    "章文嵩.利启诚.方汉.谢华刚.苏哲.魏永明,他们的黄金时代." 人活着,总要有一些可以固执坚守的信仰. 01 从爱好者到贡献者,不疯魔不成佛     1995年的一天,长沙电信局 ...

  7. OSS Compass 开源指南针发布,剑指开源生态健康

    估量有尺,开源有道.2 月 21 日,开源指南针 OSS Compass 发布会在北京顺利举行.OSS Compass 的发布,标志着我国首个开源生态健康评估平台正式诞生.发布会上介绍了 OSS Co ...

  8. 贾扬清感谢信:阿里开源10年,致敬千万开源人

    整理 | 夕颜 [导读]2019 年 10 月,有人曾根据 www.gharchive.org  的数据整理出一份 2019 年GitHub 开源贡献排行榜,获取 GitHub 2019 年的 Pus ...

  9. 开源的那些事儿之如何看待开源

    什么是开源呢? 相信很多人对于开源这个概念很模糊,我在之前的一篇博客里面也略微谈了一下,这里想展开说一下. 开源心态 首先要清楚的是,开源是一种精神,这种精神是,我希望把我的东西能够分享出去让更多的人 ...

最新文章

  1. 多级页表如何节省内存
  2. 【C++】C/C++ 中的单例模式
  3. Cisco交换机密码配置整理
  4. windows dlib 安装测试
  5. This application is modifying the autolayout engine
  6. puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...
  7. linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
  8. 计算机系统的部件名称作用,电脑配件与每个配件作用详细完整的解释
  9. rabbitmq基于http的认证和授权
  10. php接口模式,PHP设计模式 - 流接口模式
  11. nodejs中全栈开发框架meteor的文档
  12. Cadence导出Excel格式BOM表
  13. Navicat模糊查询表
  14. 商务网站建设与维护【6】
  15. 电梯运行控制模式:如何做到人脸识别、刷卡、二维码?
  16. 【BZOJ4094】 【Usaco2013 Dec】Optimal Milking(权限题)
  17. 准备搞个google play账号玩玩
  18. CentOS下Druid安装详解
  19. 网络安全技术与应用实验——SSL验证分析 基于DTLS的安全服务器设计
  20. 1706_Python中带余数除法

热门文章

  1. CTF.show:新春红包题wp
  2. 有隔板高效过滤器和无隔板高效过滤器区别在哪里
  3. python抽奖简单小程序游戏_python实现抽奖小程序
  4. Android 双usb 摄像头支持
  5. 编辑视角下,论文摘要、引言、结论怎么写?
  6. 《善数者成:大数据改变中国》读书笔记3
  7. java环巢湖区域旅游网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  8. Glut 下载及配置
  9. mysql强行结束程_如何强制结束进程?
  10. ERP(用友)-账套管理