绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
三周怀胎的UNIX,究竟靠什么惊艳了整个计算机界?!
2021-03-29 17:09:25

关注我们丨文末赠书

1969年,肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)在贝尔实验室(Bell Labs)创造了UNIX系统。50年后,UNIX系统在全世界被广泛应用,多数时候以Linux的形态呈现,在从极小到极大的无数种计算机上运行。


在1969年的贝尔实验室,UNIX是怎么来的?贝尔实验室是怎样的机构?寥寥数位研究员组成的小团队是如何改变世界的?是什么让UNIX成为可能,并推动它演化?UNIX的发展,与现代操作系统又有何联结?······


这是人们对于UNIX诞生及其背后故事的疑问,也是《UNIX传奇:历史与回忆》想要回答的。本书作者布莱恩·W. 克尼汉是普林斯顿大学计算机科学系教授,30余年贝尔实验室工龄,传奇程序"Hello, World!"的发明者UNIX诞生见证者!这本书带你走进贝尔实验室,一探UNIX的起源,亲历计算机技术发展史实。


作者:[美]布莱恩·W.克尼汉(Brian W. Kernighan)
译者:韩磊
购书5折



从UNIX的回忆录牵扯出纵观整个计算机科学史的大主题:

  • 以肯•汤普森、丹尼斯•里奇、道格•麦基尔罗伊等传奇人物小传,串联成20世纪一系列重要发明的起源/发展线路图。

  • 以UNIX的诞生与迭代、而开明的管理体制、有远见的持续投资等精彩故事,揭示出贝尔实验室如何孕育出科技创新的真相。

  • 以UNIX诞生见证者回忆往事的轻松口吻和不为人知的有趣图片,述说UNIX的“设计哲学”如何被计算机世界有效利用且延续至今。 


技术发明孵化出管理与科技创新的原力。


01



谁能预料历史的进程?


UNIX操作系统诞生于1969年,但它不是从石头缝里蹦出来的。

20世纪60年代,具有创造性的操作系统是麻省理工学院推出的CTSS(兼容分时系统)。但麻省理工学院的研究员们想做出一个比CTSS更好的版本,他们邀请了贝尔实验室和美国通用电气公司共同参与研发,意图创造出一套信息处理工具,向大众提供计算服务。

因此,他们开始设计Multics系统。Multics本该前途无量,但其很快就陷入了困境。

碍于当时技术条件的匮乏,且Multics系统要求过多功能特性,多处模块出现过度设计,导致研发存在过多难以解决的技术难题,研发进度极其缓慢。1969年4月,贝尔实验室退出Multics项目。

虽然Multics系统终还是完成了,但它至今尚未被广泛接受,只是得到了部分人的支持和使用。很多好点子滥觞于Multics,不过它伟大的贡献还在于它影响到了一个叫UNIX的小操作系统的诞生!这个小系统诞生的部分原因正是想要摈弃Multics的复杂架构。

历史就此改变。

在贝尔实验室退出Multics项目后,原来参与Multics项目开发的成员肯·汤普森仍想做操作系统。肯·汤普森偶然在实验室找到一台没怎么用过的DEC PDP-7计算机,他为其创作了一个太空旅行游戏。并且,他还为PDP-7磁盘专门设计了一个磁盘调度算法来提升磁盘的吞吐量

如何测试这个算法呢?这需要往磁盘上装载数据,肯·汤普森认为他需要一个批量写数据的程序。

“在某一时刻,我发现离实现一个操作系统仅有3周之遥了。”他需要写三个程序,每周写一个:用来创建代码的编辑器;将代码转换为PDP-7能运行的机器语言的汇编器;再加上“内核的外层”——操作系统齐活了。
 

PDP-7计算机图片
 
你认为创作出UNIX需要多久?三个月?半年?还是像Multics一样花了好几年?

而肯·汤普森只花了三周。正如肯·汤普森在2019年一次采访中所说,“一周,一周,再一周,我们就有了UNIX。”无论以何种方式来度量,这都体现了真正的软件生产力

由于受到Multics的影响,布莱恩·克尼汉提议用uni(指新系统“择一而从”)来替代Multics中的multi(Multics意图提供“包罗万象”的功能),命名“UNICS”。

UNICS后来变成了 UNIX,丹尼斯·里奇后来形容这个名字“正中Multics要害”。的确如此,UNIX不仅阉割了Multics的部分要求,还取得了Multics渴求的成就。

PDP-7的UNIX系统实在有趣,即使它只是运行在一台小型计算机上。但由于UNIX操作系统在所有类型的硬件上都保持一致,而且用较语言写成,只需付出相对较少的成本,即可从一种计算机移植到另一种计算机。

正是因为这些优于其他操作系统的创新性特点,UNIX这把“大神器”在历史的洪流中,稳步向前,一步步迈向传奇。

在计算机科学技术飞速发展的今天,即使是能以后世者的“上帝视角”来回望这段不同寻常历史的我们,都大受震撼,为这段历史感到惊奇。

那么,在50年前的计算机科学发展背景下,谁又能预料到历史的进程?即便是UNIX的创造者肯·汤普森和丹尼斯·里奇也没能预料到UNIX会如此成功。
 
UNIX的两位主要创造者:肯·汤普森(左)和丹尼斯·里奇(右)
 

02



UNIX广为流传推动商业化,向世界发起挑战

正如没人预料到肯·汤普森能从失败品Multics中能涅槃重生出UNIX,也没人预料到UNIX的流传之广,堪称传奇。


正如R·L·马丁在《Unix System Readings and Applications》一书中写道:“目前,全世界有1400所大学和学院使用UNIX操作系统。它是70种计算机产品线的基础,范围涵盖从微型计算机到超级计算机目前正在运行的UNIX系统约有10万个,约有100家公司正在开发基于它的应用程序。”


在1127中心(贝尔实验室计算科学研究中心,UNIX系统的发源地) 的实验室里待了几年后,UNIX开始往贝尔实验室内部和外部传播,席卷范围甚广。


 
▌ UNIX发展时间线
 
UNIX的第7版开始主要有2条发展线。一条来自伯克利,它以比尔·乔伊及其同事的工作为基础;另一条来自AT&T,因为AT&T试图将UNIX的专业知识和所有权做成一桩有利可图的生意。

UNIX的外部传播主要途径是高校。根据商业秘密协议,高校支付象征性的“媒介费”即可获得整个系统的源代码。这不是“开放源码”:系统只能用于教育目的,被许可人只能与其他被许可的用户讨论经验和UNIX用途。


即使对传播多加限制,但是UNIX仍然以一种势不可挡的来势,席卷计算机界。


社区迅速发展,用户群体在世界各地涌现,并发生了重大技术革新!其中突出且具有商业价值的技术革新莫过于将系统移植到不同类型的硬件上,即可移植性,以及增加访问互联网的新机制。


“随着UNIX在学术界的传播,企业终从念大学时用过UNIX的新聘程序员那里开始了解UNIX。”


此言不虚,UNIX确实拥有市场。甚至可以说,贝尔实验室的母公司——美国电话电报公司AT&T通过向大学生赠送UNIX,无意中创造了这个市场。当大学生进入社会,受雇于有能力支付真金白银的公司时,他们就会需要它。


从1984年开始,USL积极营销UNIX,并努力将其改造为专业的商业商品,终形成名为System V Release 4,或者称为SVR4的版本。AT&T投入大量资源,推动这个版本成为标准,并为源码和目标码兼容提供了参考实现和细致的定义。


虽然AT&T的UNIX商业化努力并不总能成功,但是其因为商业化而对UNIX的标准化对整个社区来说非常宝贵,并且AT&T与合作者和竞争者之间长达十年的关于UNIX的互动对操作系统市场影响颇大。


 UNIX商标创立


 
在UNIX早期贝尔实验室的法定监护人认为,UNIX这个名字是高价值商标,必须加以保护。这无疑是正确的商业决定。

他们试图防止这个名字成为可被任何人使用的通用名词,就像阿司匹林、自动扶梯、拉链等词那样。


因此,公司要求贝尔实验室员工正确地使用这个名字。特别地,它不能作为独立名词使用,如“Unix is an operating system”,必须标示商标,而且还只能以大写形容词形式存在于“the UNIXTM operating system”(UNIXTM操作系统)短语中,这就导致了“The UNIXTM operating system is an operating system”(UNIXTM操作系统是一个操作系统)这样的可笑句子。


罗布·派克和布莱恩不得不为1984年出版的The Unix Programming Environment(《Unix编程环境》)一书力争命名权,否则,这本书就得叫The UNIXTM Operating System Programming Environment了。终的折中方案是:封面上不出现商标或脚注标记,但在扉页上印了几乎看不见的星号和脚注。


《UNIX: A History and a Memoir》封面图

UNIX因为广为流传,而具有商业化的潜力和巨大的市场,虽然商业化后的“专业UNIX”因为某些原因进入了缓慢的衰退期,但是UNIX的另一分支——开放源码版本UNIX仍旧活跃,这项技术仍然在向世界发起挑战。
 

03



UNIX取得了巨大的成功

历史选择了UNIX,所以UNIX这只小蝴蝶在贝尔实验室轻轻扇动翅膀,便能在计算机科学界掀起浪潮。


UNIX取得了巨大的成功。UNIX及在其基础上诞生的Linux、macOS等其他变种运行在数十亿台计算机上,持续为数十亿人服务,当然也为在它之上构建业务的人赚取了数十亿美元。后来的操作系统受它影响极深。


那么,UNIX成功的原因何在?是否有一些想法或教训可以在其他环境中学习和应用?布莱恩•W.克尼汉认为至少在两个方面答案是肯定的:技术方面有,组织方面也有。

 
《UNIX传奇:历史与回忆》作者:布莱恩•W.克尼汉
 
▌ 技术方面
 
采用分层文件系统。在UNIX的世界里,生产力往往以删除了多少特殊情况或者代码行数来衡量,正如分层文件系统就是对既有做法的重大简化。UNIX的高明之处在于选择了足够普适的抽象概念,既能发挥巨大的作用,又不至于在性能上付出太大代价。

采用高层级的实现语言。曾几何时,世上只有硬件制造商的专有操作系统,配备专有语言,而自UNIX问世,UNIX便成为了开放的、被广泛理解的标准,后又变作一种商品。客户不再被束缚在特定硬件上,制造商也不再需要开发自己的操作系统或语言。

采用用户级的可编程shell。用户级的可编程shell具有控制流语句和方便的I/O重定向功能,使得将程序作为构件进行编程成为可能。随着shell编程能力的增强,它成为程序员工具箱中的另一种语言。而且,因为它是用户级程序,不是操作系统的一部分,所以任何人只要有更好的想法,就可以对它进行改进和替换。

采用管道。管道是典型的UNIX发明,是临时连接程序的一种优雅而高效的方式。

UNIX在技术上的创新发明数不胜数 ,正是这些技术上的优势让UNIX成为后世操作系统的原石。
 
 组织方面

UNIX之所以能取得巨大的成功,部分原因还来自非技术因素,如贝尔实验室的管理和组织结构,1127中心的人际环境,以及一群人才聚在一起解决不同问题时的思想交流。正是缘于贝尔实验室对科研人员经费的保障、对于难题的支持、对于聘请优才的谨慎、对于技术的深度掌握、对于高标准协作环境的投入和对实验室人文的关怀,UNIX在这里快速又茁壮地成长起来。
 
贝尔实验室总部照片
 

UNIX如此成功,本土操作系统同样受到了巨大影响。


对此,统信学院执行院长秦冰在推荐语中提到“作为操作系统行业的从业人员我能切身体会到UNIX的重要性。没有它,如今手机上的Android和iOS、电脑上的Windows、云计算中被广泛使用的Linux就无从谈起;没有它,石油开采、航空航天、机械制造、金融商业的效率水平无法预测;没有它,国产操作系统之路又何其漫漫。过去20年,国产操作系统正在渐渐从‘可用’阶段向‘好用’阶段良性发展,并且在国家防范网络攻击与威胁等安全领域扮演着核心角色。可见UNIX的诞生对国产操作系统开发的作用也是不可估量的。”


事实上,在国外开源操作系统生态不断发展的背景下,中国操作系统也应运而生。中国操作系统初始于20世纪末,其间诞生过多个操作系统,并且大多都是以UNIX/Linux为基础二次开发,受UNIX影响颇深。


UNIX取得巨大成功不仅给国产操作系统带来了宝贵的经验,并且在潜移默化中影响着国产操作系统的发展趋势。



04



愿原力与你同在!

今天,我们回头看肯•汤普森、丹尼斯•里奇、道格•麦基尔罗伊、阿尔•阿霍、彼得•温伯格、布莱恩•W.克尼汉、比尔•乔伊……这些人就像世界的开创者一样,早在三四十年前就为未来计算机世界编制了迷人的DNA,这个DNA就是UNIX和C语言。


今天,整个计算机世界全都有UNIX和C语言的印记。不仅如此,UNIX的“设计哲学”以及UNIX所带来的为自由而开源的“黑客文化”也成为纯正的计算机文化,推动着整个人类计算机文明的向前发展。


只有了解这些璀璨的历史和文化,我们才知道计算机世界中真正的格局和品味是什么,也才知道真正的原力是什么。


愿原力与你同在!


作者:[美]布莱恩·W.克尼汉(Brian W. Kernighan)
译者:韩磊

自1969年在贝尔实验室的阁楼上诞生以来,UNIX操作系统的发展远远超出其创造者们的想象。它带动了许多创新软件的开发,影响了无数程序员,改变了整个计算机技术的发展轨迹。 


本书不但书写UNIX的历史,而且记录作者的回忆,一探UNIX的起源,试图解释什么是UNIXUNIX是如何产生的,以及UNIX为何如此重要。除此之外,本书以轻松的口吻讲述了一群在贝尔实验室工作的发明天才的有趣往事,本书中每一个故事都是鲜为人知却又值得传播的宝贵资源。 


本书适合对计算机或相关历史感兴趣的人阅读。读者不需要有太多的专业技术背景,就可以欣赏UNIX背后的思想,了解它的重要性。


👇下滑查看更多内容:

文章编辑:罗梦婷 审校:刘鑫 龚昕岳

参考来源:《UNIX传奇:历史与回忆》 推荐词、第二章、第六章、第七章、第九章


-END-



分享好友

分享这个小栈给你的朋友们,一起进步吧。

专业的官方救援小分队
创建时间:2019-11-07 09:33:49
我是一个官方吐槽小栈我们是技术栈的搬砖IT民工。 我知道你们在使用小栈的过程中会遇到很多问题: 迭代功能太鸡肋? 界面太low? 编辑器难用到爆? ··· 需求尽管提,槽点尽管说,技术救援小分队在线为您灭火,致力于提供专业的解答,提供迅疾的反馈。 悄悄的说,毛线不懂的运营喵、产品狗他们不在,我们一起吐槽!
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 山中老狐狸
    栈主
  • 栈栈
    嘉宾
  • gaokeke123
    嘉宾
  • Ys
    嘉宾

小栈成员

查看更多
  • gyu
  • aabbcc1832611
  • 飘絮絮絮丶
  • h313895741
戳我,来吐槽~