开源和互联网是天生的一对好基友
作者介绍
何宝宏(何博):工业和信息化部电信研究院标准所副所长,工业和信息化部科技委委员,数据中心联盟(DCA)常务副理事长。
1999年毕业于中国科学院,获计算机应用技术博士学位。长期从事互联网技术、标准和管理等的研究,主导完成10余项国际标准,申请专利10余项,主持完成多项国家级项目。
软件从开源走向商业化
1950-60年代,计算机的主要用户是学术机构,所采用的商业模式是卖硬件送软件。硬件是商业企业生产的,是工业产品,是用来卖的。软件是科研机构出品的,是硬件的附属品,是用来送的。
“卖硬件送软件(含源码)”的计算机商业模式,有着非常现实的原因:
1.认识。当时业界的共识,软件是知识而不是产品,因此应遵循学术原则而不是商业逻辑。
2.市场。送软件源码可以让用户DIY,以便自己排除BUG、增加新功能、兼容不同硬件和不同操作系统(OS)等。
3.安全。那时计算机安全机制根本不存在,OS的日志功能还不流行,用户担心闭源软件会有后门等。
进入70年代,计算机厂家不再免费送软件了,更别提送开源的了。原因大致有三个:
1.行业风向标。1969年,计算机带头大哥IBM,在反垄断诉讼的巨大压力下,让硬件与软件分离,停止了免费送软件。
2.小型机和PC的兴起,计算机用户激增,对软件的需求也多样化了,没法送了。
3.操作系统和编译器等,基础软件技术日益成熟和复杂,用户没必要和也很难DIY了。
基于以上几点,在比尔盖茨等人的忽悠和努力下,软件开始卖了,作为一个独立行业兴起了。新的行业需要新的玩法,于是闭源、二进制代码、版权、授权和版本号等,让软件行业利益最大化的游戏规则,开始逐步建立了。
软件从开源走向商业化,不仅使得微软、Oracle等软件巨头崛起了,也让对软件的认知,从知识走向了商品,从开源走向了闭源,背离了早期软件开放、共享、协作和免费等的理想和信念。
自由软件和开源软件
于是,被人称为“最后一个黑客”的 RMS 等黑客们愤怒了,先是提出了自由软件(Free Software)的理念,后来又整出了开放软件(Open Software)的方法。
◆自由软件是理想主义者的Logo,是信仰,是道德,要求我们尊重每个人使用软件的自由,涉及的是对与错的问题。
◆开源软件是现实主义者的Logo,是价值观,是方法论,提出有一个开源开发的模式,不涉及对与错的问题。
一个自由软件应该是开源的,但只有部分开源软件是自由软件。如果说自由软件是共产主义的理想,那么开源软件就是社会主义初级阶段。
更加接近商业现实的开源软件,不仅得到了学术界的继续支持,也得到了产业界的大力支持,明显更接地气。
软件行业诞生于计算机行业,是软硬件分离的产物。互联网是硬件、软件和通信融合的结果,是计算机之间需要连接的产物。
整个互联网的设计,就像一台放大版的计算机,只是从本地扩展到全球了,把总线从物理的扩展成逻辑的了,把I/O从外设扩展到整个计算机了。
事实上,设计互联网的早期专家,大多是操作系统背景的。
进入80年代,软件业反超硬件业,成为拉动计算机行业前进的核心引擎。
互联网就是开源软件的外延
进入21世纪,互联网超越软件,成为拉动计算机行业和通信行业的核心引擎。而90年代的联网功能,只是计算机一个可有可无的附加功能,并且还需要专门购置的外置猫和通过电话线。
互联网与开源软件,采用了几乎相同的理念和方法。比如:
◆互联网开放网络接口,小蛮腰模型,压制网络服务商,为消费者和ICP扩权。互联网服务的发布主张快速迭代,Running Code和客户体验。
◆开源软件通过源码开放,释放代码自由,压制软件开发商,为用户和硬件厂家扩权。开源软件主张早发布,频繁发布和倾听客户。
无论如何开放,都必须遵循一些最基本的游戏规则。以Request For Comments(RFC)为代表的互联网标准,其理念和产生流程等,与开源软件几乎是一模一样的。
RFC和开源软件本质上都是标准,只是一个是给人阅读理解的,用自然语言的;一个是给机器阅读理解的,用机器语言写的。
80年代初,BSD Socket 明确定义了 Unix 和互联网之间的标准接口,并且被集成到了开源的BSD-UNIX中去,极大促进了互联网的兴起。
Unix的核心理念是模块化和工具化,强调一个系统的价值来自程序之间的关系,而不是程序本身,这与TCP/IP的核心理念,简直就是孪生的。
其实这种KISS(Keepit Simple and Stupid)原理,是70年代的主流思想,不仅是在计算机界。
90年代互联网的崛起,让开源拥有了一个完美的支撑工具。源代码的传播先是主要靠BBS,后来增加了UUCP、Usenet、IRC和Gopher等工具,现在是P2P、BLOG、SNS和Git工具等。
Linux因互联网而生。在Windows如日中天的90年代,Linus Torvalds 几乎靠一己之力和互联网的力量,成功实现了Linux。Linux的成功说明:
对于大型复杂软件的开发,不仅只有大教堂模式(微软为代表)一条路;借助于互联网的力量,集市模式(以众包)也可以成功。
2008年,微软首席执行官史蒂夫·鲍尔默说,“Linux是癌症”。
互联网让开源更加盛行
甚至 Open Source 一词,也是因为互联网的直接产物。1998年1月,为了抗衡如日中天的IE浏览器,网景公司发布了Navigator浏览器的源代码,为了区别于之前的 Free Software,业界开始启用了Open Source这个新名词。
反过来,互联网也得益于开源的成功。操作系统Linux,安全通信OpenSSL,数据库My SQL,门户工具Apache,排版引擎Webkit,手持终端Android,网络Open Daylight,云计算Open Stack,大数据Hadoop等,这些借助开源互联网而起的开源软件,今日又成了互联网的基石。
没有互联网就没有开源的今天,没有开源就没有互联网的今天。先是Open Source over Internet,然后Internet over Open Source。开源与互联网,同根同源,相同的理念,共同的兴趣,成了一对好基友。
如何一起愉快地发展
“高效运维”公众号(如下二维码)值得您的关注,作为高效运维系列微信群的唯一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛线上精彩分享及群友原创。“高效运维”也是互联网专栏《高效运维最佳实践》及运维2.0官方公众号。