视频 | 你不知道的"开源"60年秘史

2020/05/11 21:00
阅读数 673
AI总结




| 作者:Aholiab

| 转载自:程序人生

| 编辑:王玥敏

| 设计:刘颖洁



一个视频看懂波澜壮阔开源史


从上世纪60年代贝尔实验室的 MULTICS 操作系统,到 Unix 的诞生,再到今天一统服务器的 Linux 。开源的历史就是互联网的发展史。大数据、云计算、移动互联网、超级计算机,离开了Linux服务器一个能打的都没有。


本视频将带你重温开源那段波澜壮阔的历程,让我们一起回到60年代的贝尔实验室、回到 Unix 的诞生地、回到 BSD 和 Minix 的起源、回到轰轰烈烈的自由软件运动、回到赫尔辛基 Linus 的那间小房间、回到山景城 VA Linux 的办公室……看看开源怎样影响着今天的世界。


点击下方小程序或「阅读原文」,直达完整版无广告视频,看在为大家谋福利的份上,多多在看转发哟ღ( ´・ᴗ・` )比心!




以下为文字稿内容


根据2019年 GitHub 年度数据报告统计,在 GitHub 全球4000万注册中户中,中国开源项目的贡献量位列第二。越来越多的中国企业积极拥抱开源。
 
从20世纪60年代阿帕网( ARPANET )将共享源代码、互相协作和开放通信的底蕴写入软件开发的基因中开始,到开源操作系统的鼻祖 UNIX 的诞生,再到轰轰烈烈的自由软件运动和开源运动,开源软件的历史就是互联网的发展史。
 
不论是谷歌搜索、Kindle 阅读时、淘宝剁手、QQ聊天,还是超级计算机、大数据、无线电、移动互联网,离开了 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的商业化反转



自此,Unix 的商业价值被激发,在此后的相当长一段时间里,嗅到这股商业香气的AT&T 都把 BSD 视为最大的威胁,甚至还将其告上了法庭,这场官司旷日持久。期间,BSD 的大部分开发工作被迫停滞,学校的学生和老师也被迫出庭,搞得人心惶惶。最终,以 AT&T 将 Unix 的版权卖给了 Novell ,而 Novell 不打算继续扯皮,与加州大学伯克利分校达成和解而告终。
 
AT&T 也因这一列操作,人设成功黑化。恶龙一时爽一直当一直爽,AT&T 彻底开始了商业化 Unix 的步伐。先是注册了 Unix 这个商标,然后又赢得了 POSIX 标准制定战的胜利,从那以后,开源操作系统名称后面以X结尾成为了约定俗成。
 
这个时候美国司法部又给 AT&T 来了个神助攻,1984年司法部再次以违反《反托拉斯法案》为由对 AT&T 进行了起诉,将 AT&T 拆分成了专营长途电话业务的新 AT&T 公司和7个本地电话公司。没想到这么一拆,让原先禁止 AT&T 进入计算机领域的限制失效了。也就是说,从此 AT&T 可以光明正大的用 Unix 来赚钱了。
 
从1979年的第7版开始,Unix 的许可证就开始禁止大学使用其源代码。两年后,AT&T就推出了Unix的第一个商业版本Unix System Ⅲ;又过两年,又发布了更商业的 Unix System V Release 1 ,从这一版本开始,Unix 彻底不再提供源代码,转而向用户收取2-20万美元的授权费。AT&T 把 Unix 卖出了天价。
 
在反开源的队伍里,AT&T 绝不孤单。微软早期也是反开源的中坚力量,没想到如今坐拥全球最大开源社区之一  Github 的浓眉大眼的微软,早年居然是反对开源的。
 
1975年,微软推出的第一个产品 Basic 大获成功,成为每台电脑的必备软件。当时,有一群计算机发烧友组成了一个「家用计算机俱乐部」,跟前面说的「计算机科学研究小组」一样,这个俱乐部也经常在一起捣鼓计算机。当时人们习以为常的软件传播方式是,会员从俱乐部带走软件的磁盘,下次聚会时带回两份拷贝给其他成员。Basic 就这样被安装在了很多成员的电脑上。
 
可惜好景不长,不久这群爱好者就接到了署名为威廉·亨利·盖茨三世的公开信。那一年,盖茨刚满21岁,正值血气方刚。信中他细数了 Basic 开发的艰辛和成本,并直截了当的质问爱好者:谁会从事专业的软件开发却分文不取?哪有业余爱好者会花费3人/年的精力去编写软件?你们这些爱好者的所作所为与「窃贼」无异。从此开源软件与商业软件的梁子算是结下了,虽然当时开源这个名称还没被提出。
 
很快,主张软件共享的阵营就对商业软件发起了反击,这里面有三个人至关重要,我们姑且称他们为「反击三人组」。

 

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的诞生



最后我们说说反击者3号,也就是反击者1号的头号迷弟、Linux的创始人Linus Torvalds。
 
要说这个 Linus 到底有多牛,美国《时代》周刊的评价是这样的:有些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生。唯一一个能同时做到这两者的人,就是 Linus Torvalds 。”
 
看了这个评价,我只能说《时代》周刊还是太保守。看看人家Linus自己是怎么评价自己的:我的名字叫 Linus ,我是你的上帝( My name is Linus, and I am your God )。
 
1969年末,Linus 出生在芬兰的赫尔辛基,由于早年父母离异,Linus的大部分时间都是跟着母亲长大的。他的外公是个统计学教授,因此家里有一台用于工作的CommodoreVIC-20计算机,这玩意在当时的欧洲很流行。外公经常让年幼的 Linus 玩这台电脑,还经常口述程序让他敲入到电脑里。
 
这台电脑是 Linus 童年最亲密的玩伴,他对这种输入-输出的游戏十分痴迷。他还用这台电脑学会了 Basic 语言。到了大学时他已经有了丰富的编程经验。
 
1991年1月,Linus 花了3500美元分期付款购买了一台杂牌组装电脑。这台电脑的内存只有4兆、CPU33兆赫,配有一台14英寸的显示器。然后他又用16张磁盘把Minux系统装进了这台电脑。Linux 的初始版本就是在这台电脑上诞生的。
 
之前咱们说过,反击者1号 Andrew 教授的那本《操作系统:设计与实现》对Linus的影响非常深远,一度是睡在了 Linus 的床上。
 
刚安装完 Minix 系统的 Linus 用了一个月的时间把这个系统的里里外外研究了一遍,后来发现,这个系统虽好,但也存在很多缺陷,比如内核问题、文件系统问题。但最要命的是这个系统缺少一个登陆学校Unix服务器的终端。于是 Linus 决定抛开Minix,重新设计一个终端仿真器,也就是说他需要在硬件层面重新开发一套新系统!
 
两个月之后,终端仿真器完成,这是 Linux 操作系统的第一步。之后,Linus又开始添加磁盘驱动和文件系统。在那段时间, Linus 除了参加每周三晚上的同学聚会之外,大部分时间都穿着睡衣坐在计算机前不知疲倦的敲打着键盘。
 
家门外彼得盖坦街的白雪融化了他不知道,现在是三月还是四月他也不知道。他的窗帘把窗户遮盖的严严实实,把阳光和外面的世界一同和自己区隔开来。
 
1991年9月17日,Linus 把完成的新操作系统上传到了赫尔辛基工程学院的 FTP 服务器上,并准备用「 Freax 」作为操作系统的最终代号,结果遭到了激烈的反对。要知道发布一个操作系统可是开天辟地的大事,应该用自己的名字命名才对,把 Linus 一改,改成 Linux 就顺眼多了。可 Linus 却担心这个名字显得自己太自恋。最终还是「民意」占了上风。
 
Linux 用10年名扬天下,20年统治服务器。Linux 的源代码完全公开。但这么做的原因却并不是因为 Linus 与前两位反击者一样对私有软件深恶痛绝,而是因为他「很懒」以及「喜欢授权给他人」。
 
由于 Linux 的开放,早年参与开发的黑客都具有很高的水平,直到今天, 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 的主角光环太强,不一会就开始有其他人在发言中也开始使用这个词,然后人数从一个,变成了两个、三个、四个……于是大家就在不知不觉中被套路了。

 

这里还是要跟大家掰开了再细说一下,「自由软件」和「开源软件」并非只是名称上的区别。「开源软件」是一种软件的开发方式,而「自由软件」已经成为了一场关乎道德的社会运动。它极力捍卫着开发者:

  1. 为任何目的运行程序的自由;

  2. 研究程序运行原理并对其修改的自由;

  3. 以免费或收费的方式再发布软件拷贝的自由;

  4. 改进程序并把改进后的版本发布给公众的自由。

 

任何运动都需要一个纲领。1997年著名黑客 Eric Raymond 发表了他那著名的《大教堂与集市》。书中他清晰、透彻地描述了开源软件开发模式的理论与实际应用,并把商业软件的设计和开发比作「大教堂」,把开源的开发模式比喻为「集市」,从而把开源软件从商业软件和自由软件中彻底地区分了出来。


这本书犹如马克思的《共产党宣言》为开源运动描绘了革命的纲领,又犹如《圣经》让信徒们找到了心灵的归依。

 

在这本书的影响下,网景终于将 Navigator 开源成为了第一个开源的商业软件,在与IE的擂台中扳回一城。


07

开源在中国



1991年,中科院的宫敏博士用手提肩抗的方式,为中国背回了20盒磁带,磁带里装着30M的自由软件。在国家信息中心的支持下建立了中国自由软件库,从此国内技术人员用上了 Linux ,在中国点亮了开源的火种。

 

在「十二五」发展规划中,中国政府提出要把开源软件作为扶持发展的对象,2014年,中国邮政还采购了上万套定制版的国产红旗 Linux 操作系统,用于门店收银的工作,Linux 也取代了老旧的 WindowsXP。如今连天河二号这样的超级计算机也是跑在 Linux 上的。

 

连之前反对开源的微软,也在2014年勇敢喊出了「微软爱 Linux」,其实早在2009年,微软就已经向 Linux 内核贡献了2万多行代码。这些操作像极了爱情。目前微软已成为 Github 上代码贡献最多的公司之一。


开源软件的兴起,并不会让商业软件消失,人们享受着开源软件灵活开放的开发体验的同时,也享受着商业软件漂亮的界面和人性化的服务。但开源软件倡导的协作共享和利他主义的精神,成为了计算机行业乃至人类文明迈向更加伟大的基石。




参考资料



 https://linuxstory.org/simple-history-about-opensource-1/

 https://coolshell.cn/articles/2322.html

https://www.redhat.com/zh/topics/open-source/what-is-open-source

https://opensource.com/article/18/2/coining-term-open-source-software

https://www.oreilly.com/pub/pr/636

https://www.linuxidc.com/Linux/2014-08/105787.htm

 https://www.magedu.com/80923.html

http://opensourceway.community/posts/opensource/open_source_tao_and_way/latitude_of_history/

https://opensource.org/docs/osd

https://www.gnu.org/gnu/manifesto.html

https://linuxstory.org/free-software-foundation-and-gnu-manifesto-30-years/

 https://www.gnu.org/philosophy/luispo-rms-interview.html

https://www.stallman.org/

 https://www.zhihu.com/question/26648227

(可上下滑动翻阅)




开源社简介



     开源社是由国内外支持开源的企业,社区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源社区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、社区发展和开源项目。



相关阅读 | Related Reading


   
   
   


明势资本: 2020年开源峰会 │ 5月17日


暑期 2020 之 “大咖说开源” 讲座题目征集


一起玩转 Linux 内核之旅开源社区吧



喜欢本篇内容请给我们点个在看


本文分享自微信公众号 - 开源社(kaiyuanshe)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
AI总结
返回顶部
顶部