| 作者:Aholiab
| 转载自:程序人生
| 编辑:王玥敏
| 设计:刘颖洁
一个视频看懂波澜壮阔开源史
从上世纪60年代贝尔实验室的 MULTICS 操作系统,到 Unix 的诞生,再到今天一统服务器的 Linux 。开源的历史就是互联网的发展史。大数据、云计算、移动互联网、超级计算机,离开了Linux服务器一个能打的都没有。
本视频将带你重温开源那段波澜壮阔的历程,让我们一起回到60年代的贝尔实验室、回到 Unix 的诞生地、回到 BSD 和 Minix 的起源、回到轰轰烈烈的自由软件运动、回到赫尔辛基 Linus 的那间小房间、回到山景城 VA Linux 的办公室……看看开源怎样影响着今天的世界。
点击下方小程序或「阅读原文」,直达完整版无广告视频,看在为大家谋福利的份上,多多在看转发哟ღ( ´・ᴗ・` )比心!
以下为文字稿内容
01
操作系统的启蒙,Unix的诞生
故事还要从半个世纪前 Internet 的鼻祖 ARPAnet 说起。1969年「美国国防部高级研究计划管理局」希望通过专门的接口信号处理机( IMP )和专门的通信线路,把美国的几个军事和研究用的电脑主机联接起来,其4个结点分别分布在:加州大学洛杉矶分校、加州大学圣巴巴拉分校、斯坦福大学和犹他州立大学的4台大型机上。因为 ARPAnet 的初衷是为了方便学校间的资源共享,所以那时很多研究员在合作一个项目时会经常共享代码和信息,这为日后开源的可行性提供了参考。
1965年,通用电气和麻省理工学院发现当时的分时操作系统,只能支持30台终端访问主机,于是拉上了「美国电话电报公司」,也就是大名鼎鼎的 AT&T 旗下的贝尔实验室,计划合作开发一套多用户、多用途、分时的操作系统,他们给这个系统起名叫「复杂指令和计算服务」,简称 Multics 。Multics 被设计运行在GE-645大型主机上。要知道那时的计算机还处在石器时代,距离第一台重30吨的计算机鼻祖 ENIAC 的发明也仅仅过了十几年,微处理器要在未来十年后才会出现,更没有现代意义上的「电脑」,要实现这样一个操作系几乎是不可能完成的任务。所以没过多久,Multics 这个项目就宣告完结, AT&T 也从这个项目中撤了出来。
然而故事到这里才刚刚开始,话说贝尔实验室里有两个参与了 Multics 开发的大神——Ken Thompson 和他的同事 Dennis Ritchie 。他们当时在 Multics 下开发了一款叫《太空旅行》的游戏,现在操作系统没了,游戏也没法跑了。于是这两个大神一言不合就要开发一个新系统。当时主流的操作系统是「批处理操作系统」,但他们对此并不感冒。所以就在 DEC PDP-7 小型机上开发一个「阉割版」的 Multics 系统,取名叫Unics。后来,这个名字被神秘地改成了 Unix 。
Unix 是现代操作系统的启蒙,从 Unix 中衍生出了一个相当相当长的操作系统列表:SunOS、Linux、Mac OS、Windows NT,以及 IBM 和微软合作开发的 DOS 。它还间接促成了C语言的诞生,它所遵循的 KISS 法则,即「保持简单和笨拙」,成为了后世工程师们神圣的铁律。Ken Thompson 和 Dennis Ritchie 就如同牛顿,用几个简单的物理定律把计算机世界里的复杂规律概括的层次分明。
后来,他们还在1983年获得了计算机领域里的最高荣誉「图灵奖」。
最初,Unix 只是在贝尔实验室内部流传,因为当时大家都不喜欢 DEC 自带的操作系统,所以很多人换上了 Unix 。渐渐地,Ken Thompson 也收到了一些外部人员索要Unix磁盘拷贝的邮件,于是他很爽快的把包含源代码的 Unix 拷贝磁盘寄给了他们。
这里有一个问题:为什么 Ken Thompson 能那么轻易就把自己辛辛苦苦开发出来的操作系统的源码分发给别人?这会不会泄露 AT&T 的商业机密?
答案是否定的。K神之所以能这么做,主要有两个原因。
第一, 受制于《反托拉斯法案》的规定,AT&T 当时无法进入电话/电报以外的行业。这里科普一下什么是《反托拉斯法案》。《反托拉斯法案》也叫《谢尔曼反垄断法》,伟大的革命导师列宁曾说过:资本主义发展到最高阶段,必然导致托拉斯也就是垄断的诞生。《反托拉斯法案》可以抑制垄断的形成。这里我们可以简单地理解为:即使 AT&T 保留了 Unix 的源码,也无法从事商业活动并从中获利。
第二, 当时计算机还属于高端工具,能使用计算机的不是软件开发者就是研究人员。向他们提供源代码是天经地义的事,有了源代码,有 bug 他们就可以自己解决;同时,他们也可以根据自己的需要对软件进行修改。
到了1975年,Unix 已经更新到了第6版。这一年,Ken Thompson 获得了带薪休假一年的机会,他利用这次机会来到加州大学伯克利分校访学,随身带着Unix第6版的源代码磁盘。学校里一群平常一起捣鼓计算机的教授和学生听闻 Ken Thompson要来都欢欣鼓舞,还成立了一个「计算机科学研究小组」,这个小组中有个超级活跃的同学叫 Bill Joy ,早在第一版 Unix 发布之时,他就对这个系统做过一些改进。在Bill Joy 的带领下,小组成员很快就协助 Ken Thompson 完成了可以跑在 Unix 上的 Pascal 解释器和其他的一些功能。
Ken Thompson 和「计算机研究小组」在一起改进Unix的消息不胫而走,很多其他学校的师生知道了这事也很感兴趣,纷纷寄来了更多的改进代码和反馈意见,Bill Joy对这些意见进行了汇总,编译了一套自己的操作系统。1978年3月,这套包含了Pascal 解释器、外部反馈和其他改进的第6版Unix以 1BSD 的命名(即「第一个伯克利发行版」)对外发布。从此 BSD 成为了 Unix 的最大分支。
4年后,Bill Joy 离开校园,创建了 Sun Microsystems 公司,在自己主导开发的BSD之上创建了 SunOS 系统。上世纪80年代初, Sun 凭借与德州仪器合作开发的高性能、平价的 Sparc 系列工作站狠狠地赚了一笔,股价曾一度超过 IBM 。
02
UNIX的商业化反转
03
MINIX的诞生
「反击者1号」是阿姆斯特丹自由大学计算机科学系教授 Andrew Tanenbaum 。由于 Unix 不再免费向学校提供源代码,他为了能在课堂上更好地演示操作系统的细节,决定在不查看任何 Unix 源代码的情况下,自行开发一套与 Unix 兼容的操作系统,这套系统的全部代码只有12,000行,可以运行在286的英特尔芯片上,取名为 Minix,即 Mini-Unix 。
Minix 发布于1987年,作为 Andrew 教授《操作系统:设计与实现》一书的参考范例。这位反击者1号肯定想不到,在1000多公里外的北欧,一个刚刚服完兵役的少年,被他的这本719页的大部头改写了命运。这个少年正是 Linux 之父,Linus Torvalds 。用 Linus 的话说,「这本书把我推上了生命的高峰」。从此以后,操作系统、Unix 和 C 语言成为了年少的 Linus 心中的维纳斯、阿波罗和雅典娜。
回到 Minix ,这个系统虽然很迷你,但凭借低廉的价格和简易的操作,在大学中大行其道,一时风头无两。
04
星火燎原:自由软件运动
再说说反击者2号,这哥们儿就更神了,原本是 MIT 人工智能实验室里的大神,后来因为追求内心自由软件的理想,拉起大旗,一生站在商业软件的对立面。没错,这就是 Richard Stallman ——一个集飘逸长发、黑客精神和自由灵魂于一体的男人。
回想20世纪80年代,Stallman 还是 MIT 人工智能实验室里的程序员,那时实验室里有一台施乐牌 Dover 打印机有卡纸的问题,他希望通过改进它的驱动程序来解决这个问题,但施乐公司拒绝提供源代码。这一举动让 Stallman 非常火大,类似的事情多了以后,他开始对知识产权异常反感。
作为本身就十分推崇自由的黑客文化的人,他认为开发商业化的操作系统是对人类的「背叛」。1984年,他辞去了 MIT 的工作,开启了他自由软件之父的生涯。他先是开发了一款类 Unix 的操作系统,叫 GNU 。GNU 是「GNU不是Unix」的缩写,这个名字挑衅意味十足。GNU 可以任意使用和分发,为了为 GNU 更好的提供技术、法律和财政的支持,次年 Stallman 成立了「自由软件基金会」。并发表了他那著名的 「GNU 宣言」。
GNU 宣言的主要目的是请求大家支持 GNU 的开发,宣言中Stallman详细说明了编写 GNU 的原因、GNU 是什么、如何为 GNU 作出贡献。他写到:
如果我喜欢一个程序,我就必须把它分享给喜欢它的人。软件销售商通过让每个用户保证不和其他人分享来控制用户……我的良知让我无法签署这样的软件许可证协议。
——《GNU宣言》
GNU 宣言以「捍卫软件用户的自由」之名,吹响了自由软件向商业软件反攻的号角。由于 Unix 本质上是由多个可互相通信的分离程序构成,GNU 只要把这些分离程序一个个的替换掉,就能实现一个新的操作系统。
这个过程大约持续了6年,到了1991年,GNU 完成了把所有 Unix 的独立程序给替换掉的工作,还编写了大量的系统组件,包括函数库、编译器、调试工具、文本编辑器等,其中很多已达到工业级标准。
GNU 成为了自由软件的新标杆,一些公司希望通过为自由软件提供咨询和服务来赚钱,其中最著名的就是 Cygnus 。虽然自由软件允许任何人得到源代码,但这些软件是没有「客服」提供支持服务的。所以 Cygnus 成为了一个专门为自由软件提供服务的公司。
Cygnus 的创始人 Michael Tiemann 是 GNU 的不锈钢铁粉,连 Cygnus 的名字中都包含着 GNU 。Cygnus 是第一个自由软件公司。Cygnus 之于 GNU ,就如同红帽之于 Linux 。
05
Linux的诞生
06
【开源】的提出
其实很长时间以来,Open Source 这个词的提出者都没有定论,直到2018 年2月,开源一词被提出的20周年之际,它的真正提出者,一位纳米技术的女研究员Christine Peterson 亲自发表了一篇文章,讲述了这个词被提出的来龙去脉,她的发起者身份才算正式被官宣。
开源指的是开源软件,也叫 OSS 。开源软件的源代码可以任意获取,任何人都能查看、修改和分发他们认为合适的代码。这一概念是在前面提到的「自由软件」,也就是 free software 的基础上得来的。
由于英文中的 Free 也有免费的意思,所以 Free Software 这个词组经常被误认为是「免费的软件」,因此,概念的提出者 Richard Stallman 不得不一遍遍不厌其烦地解释:Free 不是免费啤酒的免费,而是自由。
那么问题又来了,在自由美利坚,自由又是个有政治色彩的词汇。这两个因素很大程度上,制约了自由软件的发展。毕竟开源的本质是源代码的公开,跟自由和免费都相去甚远。
1998年2月3日,一群资深黑客聚集到山景城的 VA Linux 办公室开会,当时正值微软将 Windows95 和 IE 浏览器捆绑销售,市场占有率猛增,网景想要通过把自家的Navigator 浏览器开源对其反击的时候。这帮黑客打算利用这次 Navigator 开源的机会,把自由软件的思想传播出去。
其实早在一年前,小组的成员就讨论过要用一个新的名字来替换掉「自由软件」,后来 Christine Peterson 想到了「开源软件」这个词。但在那天的会议中,Christine并有直接站起来宣布,因为在这帮技术老炮儿里,这个女研究员并没有太多的存在感。最后是 Linux 开发者 Todd Anderson 用「洗脑战术」让这帮人接受了这个词。他在自己的发言中潜移默化的用开源软件替代了自由软件。
也许是 Todd Anderson 的主角光环太强,不一会就开始有其他人在发言中也开始使用这个词,然后人数从一个,变成了两个、三个、四个……于是大家就在不知不觉中被套路了。
这里还是要跟大家掰开了再细说一下,「自由软件」和「开源软件」并非只是名称上的区别。「开源软件」是一种软件的开发方式,而「自由软件」已经成为了一场关乎道德的社会运动。它极力捍卫着开发者:
为任何目的运行程序的自由;
研究程序运行原理并对其修改的自由;
以免费或收费的方式再发布软件拷贝的自由;
改进程序并把改进后的版本发布给公众的自由。
任何运动都需要一个纲领。1997年著名黑客 Eric Raymond 发表了他那著名的《大教堂与集市》。书中他清晰、透彻地描述了开源软件开发模式的理论与实际应用,并把商业软件的设计和开发比作「大教堂」,把开源的开发模式比喻为「集市」,从而把开源软件从商业软件和自由软件中彻底地区分了出来。
这本书犹如马克思的《共产党宣言》为开源运动描绘了革命的纲领,又犹如《圣经》让信徒们找到了心灵的归依。
在这本书的影响下,网景终于将 Navigator 开源成为了第一个开源的商业软件,在与IE的擂台中扳回一城。
07
开源在中国
1991年,中科院的宫敏博士用手提肩抗的方式,为中国背回了20盒磁带,磁带里装着30M的自由软件。在国家信息中心的支持下建立了中国自由软件库,从此国内技术人员用上了 Linux ,在中国点亮了开源的火种。
在「十二五」发展规划中,中国政府提出要把开源软件作为扶持发展的对象,2014年,中国邮政还采购了上万套定制版的国产红旗 Linux 操作系统,用于门店收银的工作,Linux 也取代了老旧的 WindowsXP。如今连天河二号这样的超级计算机也是跑在 Linux 上的。
连之前反对开源的微软,也在2014年勇敢喊出了「微软爱 Linux」,其实早在2009年,微软就已经向 Linux 内核贡献了2万多行代码。这些操作像极了爱情。目前微软已成为 Github 上代码贡献最多的公司之一。
开源软件的兴起,并不会让商业软件消失,人们享受着开源软件灵活开放的开发体验的同时,也享受着商业软件漂亮的界面和人性化的服务。但开源软件倡导的协作共享和利他主义的精神,成为了计算机行业乃至人类文明迈向更加伟大的基石。
参考资料
开源社简介
开源社是由国内外支持开源的企业,社区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源社区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、社区发展和开源项目。
相关阅读 | Related Reading
明势资本: 2020年开源峰会 │ 5月17日
暑期 2020 之 “大咖说开源” 讲座题目征集
一起玩转 Linux 内核之旅开源社区吧
喜欢本篇内容请给我们点个在看
本文分享自微信公众号 - 开源社(kaiyuanshe)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。