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

| 做者:Aholiabphp

| 转载自:程序人生html

| 编辑:王玥敏linux

| 设计:刘颖洁程序员

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

从上世纪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 内核之旅开源社区吧喜欢本篇内容请给咱们点个在看