1969年夏天到1970年秋天

在1987年制作的纪念光盘上,印着Ken Thompson和Dennis Ritchie长满胡须的头像。光盘的标题是“我们的创建者”。一般来说这是对的,却不够精确。Thompson是创始人,Ritche和Rudd Canaday紧随其后,继而是一些贝尔实验室的工作人员。他们是一个关系密切的朋友圈子。由于流传的故事变得无关紧要,这不是戏剧的关键点。

当我问Dennis Ritchie为什么Ken为星际旅行工作,他回答说仅仅因为这很有意思(实际上,星际旅行是一个严格的天文模拟程序,而不仅仅是一个简单的游戏)。

当然在某种程度上,这是在贝尔实验室普遍的工作态度。实验室的基本概念是:

曾经是,现在也是雇佣一些有点子的家伙,并让他们实现出来。Ken做了有趣的事情,并让他变得有价值。当一个好的大学雇佣了一个年轻的教授,会期望他们去做什么?好吧,这当然会有很多的原因,但必定是因为他们有一些好点子并且造成一些影响。在学术界和这里的的实验室可能会有些区别,但最终所期望的结果却惊人的相似。人们被授予充分的自由,去做他们自己想做的事情。虽然这样做会有不错的运气,并不是所有人都会做出成果。

当1969年三月贝尔实验室结束参与Multics项目时,Ken Thompson正在为一个GE645型号的机器工作。他选择继续工作,因为“这很好玩”。不管怎样,好玩意味着持续不断地工作,去尝试突破硬件和软件的限制。GE是一个昂贵的机器,而Multics还没有准备好成为任何机器的生产环境。

Dong Mcllroy强调,“这是Multics最早开始工作的地方,贝尔实验室的确将645作为运行Multics的机器。3个用户就可以让它满载。”

虽然Thompson继续待在伯克利,他也曾经知道Butler Lampson写的SDS930操作系统。但是在Multics灾难以后,操作系统研究在新泽西就不再流行。

Sandy Fraser在1969年五月来到贝尔实验室。他离开Ferranti是因为他想为Multics工作,然而当他来到贝尔实验室时项目就已经被砍掉了。一天Bill Baker()和Ed David()到了默里山贝尔实验室五楼,David读到了一个文件,提到了贝尔正在推出这个项目。Fraser回忆这是一个“痛苦的改变”,所有的人都很泄气。“玩具没了。。。动力也随之而去”,他说。在四月,五月,六月Thompson沉浸于实现一个文件系统。就像他告诉Mahoney的:

相比于给你一个地址,你该如何返回具体文件内容及其他类似的事情,这是最底层的事情了,永远不会有更底层的事情。我认为我只有过一或两次讨论。Dennis和Canaday以及我讨论如何顺其自然的把各个文件存放起来,这具体到很多细节:你如何存放文件块的地址,你如何存放...。我们在Canaday的办公室做这些事情,最后Canada会打一个电话。那时贝尔实验室有一个听写记录的新服务,必要时你用录音机录下来给记录员,第二条早上你就会收到打印出来的记录。第二条你收到记录,所有的缩写都没有了,像“inode”会变成“eyen”。然后我们重新来做,解释也会被他们记录下来,这也成为文件系统的工作文档。而在PDP-7(一个数字设备公司的计算机)上实现文件系统只需要一到两天。

Bob Morris于1960年加入 贝尔实验室,他说他觉得Canaday对于UNIX的贡献是早期参与者中最被低估的。“最早是Ken,Dennis以及Rudd”,他说,“其他人一两年或三年后后加入进来,我是第三年,但并没有被列入”。Steve Bourne在1970年加入贝尔实验室,他说的有点正式:

那时只有一台带有340显示器的PDP-7可以用,PDP-7只提供了汇编器和加载器。环境非常简陋,同一时间只能有一个用户使用这台计算机,每个用户的使用时间都很宝贵。然而一个单用户的UNIX系统不久就要来临了。星际旅行程序针对PDP-7上重写,一个汇编器和一个初步的操作系统内核正在被创建,并且在GECOS(General Electric Comprehensive Operating System)上针对PDP-7跨平台汇编...

跨平台汇编的意思是使用两台计算机,每当做出新的变化就把纸带从一个机器放到另一个上...。这个系统支持两个用户同时工作,名字UNICS是一个叫Peter Neumann的喜欢说双关语的家伙在1970年创造的,意思是“UNiplexed Infomation and Computing Service”,和"阉割的Multics"双关。有些人告诉我是Brian Kernighan改变了拼写方式,但Kernighan却告诉我记不起来改成UNIX是谁的主意。

PDP-7属于Joe Condon的组。它被“因为一些图形问题借给了Bill Ninke”。Condon回忆道:“Ninke离开去了Holmdel(贝尔实验室的另一个站点)” 。所以当Thompson和Ritchie想使用它的时候它正好是空闲着的。 Ken Thompson回忆道:

当时是69年的夏天。实际上,我老婆正在度假,去了加利福尼亚的家里看望我父母。68年我们刚刚有了一个儿子,所以Bonnie带着孩子去了加利福尼亚一个月的时间。我分别花了一星期的时间写了操作系统,命令行,编辑器和汇编器。有了这些,就能图灵完备它自己。在这一个月的时间里,我写了一个看起来像个操作系统的家伙。他有必要的汇编器,编辑器,命令行。如果它还没有自我完备,那他也是即将自我完备的了。提供和GECOS连接...。是的,所有这些只需要一个人做上一个月。

这真的是一个人月。Thompson继续说:

它没有保持这样太久,我们给它添加了文件系统,这样你就可以创建文件,删除文件,或者读写文件看看他的能力。要做到这些,你需要一些脚本来执行你想要的文件系统操作,那些脚本在纸带上表示“读文件”,“新建文件”,“写入文件”...。你不得不通过纸带运行脚本,然后它会让磁盘咯吱咯吱的转一会,你不知道正在发生什么。你不能看到它究竟在做什么,你看不到任何东西。所以我们创建了一些文件系统的工具,我们用纸带通过这些工具加载文件系统,然后通过文件系统运行工具。这个就是exec,顺便说一下,调用这些工具的东西就是shell,驱动文件系统到我们想要读取的地方,他如何工作并且如何反应。在我们开始开发这些东西之前,它可能会自己运行一天或两天。

当然Multics的一些设计影响到了UNIX。但就像Ritchie说的,也有些东西“非常不一样”。

我们在大系统的设计思想上有些压力。Ken想做些简单的事情。大概的,对事物来说,简单实际上就是更小巧。我们能

uniplexed ? never to down? sort of known? maintaining itself?

results matching ""

    No results matching ""