打字猴:1.700435588e+09
1700435588 UNIX传奇:历史与回忆 [:1700434679]
1700435589 UNIX传奇:历史与回忆 2.3 Unix起源
1700435590
1700435591 贝尔实验室退出Multics项目后,项目组成员得找其他事来做。肯·汤普森(图2-2)还是想做操作系统,但实验室管理层被Multics伤透了心,不肯给操作系统项目买硬件。肯和其他人只能纸上谈兵,设计操作系统的各种组件,无法开展具体的实现工作。
1700435592
1700435593
1700435594
1700435595
1700435596 图2-2 肯·汤普森,约1981年 (杰勒德·霍尔兹曼供图)
1700435597
1700435598 恰在此时,肯找到一台没怎么用过的DEC PDP-7计算机。这种计算机的主要功能是做电路设计的输入设备。
1700435599
1700435600 PDP-7于1964年推出,但计算机领域演进太快,到了1969年,它已经过时。这台机器本身不算很强大,只有8K(8192)个18位字长的内存(16 KB),但其图形显示非常漂亮,所以肯就为它写了个太空旅行游戏。在这个游戏里,玩家可以漫游太阳系、探访各个行星。这个游戏有点让人上瘾,我玩了好几个小时。
1700435601
1700435602 PDP-7还有一个好玩的外设——磁盘驱动器高耸,直直架着一块磁盘。据传,万一盘片飞出来,站在它前面的人就有可能遇险。磁盘运转速度远高于计算机读写速度。为了解决这个古怪的问题,肯写了个磁盘调度算法来提升磁盘的总吞吐量。这个算法在任意磁盘上都可用,但主要是为PDP-7的这块磁盘设计的。
1700435603
1700435604 如何测试这个算法呢?这需要往磁盘上装载数据,肯认为他需要一个批量写数据的程序。
1700435605
1700435606 “在某一时刻,我发现离实现一个操作系统仅有3周之遥了。”他需要写三个程序,每周写一个:用来创建代码的编辑器;将代码转换为PDP-7能运行的机器语言的汇编器;再加上“内核的外层——操作系统齐活了”。
1700435607
1700435608 正在那时,肯的太太休了3周假,带着一岁大的儿子去加利福尼亚探望公婆,这样肯就有了3周不受打扰的工作时间。正如他在2019年一次采访中所说,“一周,一周,再一周,我们就有了Unix。”无论以何种方式来度量,这都体现了真正的软件生产力。
1700435609
1700435610 肯和我都从贝尔实验室退休几年之后,我问他3周内写出Unix是否属实。下面是他回复邮件的原文,谈到的情况和最近那次采访完全一致。
1700435611
1700435612 1969年年中至年末,有明确Unix特征的系统就已在运行,可以说那就是Unix诞生的时间了。
1700435613
1700435614
1700435615
1700435616
1700435617 日期:2003年1月9日,星期四,13:51:56-0800
1700435618
1700435619 Unix是用来测试吞吐量之类的文件系统实现。实现出来之后,我发现很难用数据给它加上负载。我可以在循环中调用读/写操作,但做不了更复杂的事。这就是邦妮(Bonnie)去圣迭戈(San Diego)探望我父母时,我面临的状况。
1700435620
1700435621 我认为它已经很接近分时系统了,只是还缺少执行调用(exec call)、shell、编辑器和汇编器。(没有编译器)执行调用手到擒来。其他三个每周做一个——加起来正好是邦妮在那边待的时间。
1700435622
1700435623 计算机内存有8k×18位。4k做内核,4k供用户程序换入换出。
1700435624
1700435625
1700435626
1700435627 早期系统有一小群用户,其中当然包括肯和丹尼斯,还有道格·麦基尔罗伊、鲍勃·莫里斯、乔·奥桑纳,以及撞了大运一般的我。每位用户都有一个数字身份编号。有些编号代表系统功能而非人类用户,例如根(root)用户,或者说超级用户,身份编号为0,此外还有一些特殊编号。人类用户的编号从4开始。我记得丹尼斯是5,肯是6,我是9。在初版Unix系统中拥有个位数用户身份编号,大概也算略具声望了。
1700435628
1700435629
1700435630
1700435631
1700435632 UNIX传奇:历史与回忆 [:1700434680]
1700435633 UNIX传奇:历史与回忆 2.4 何以命名
1700435634
1700435635 新PDP-7操作系统诞生没多久,就得了一个名字,但具体过程不得其详。
1700435636
1700435637 我记得自己站在办公室门口,和几个人讨论,其中好像有肯、丹尼斯和彼得 · 诺伊曼。那时系统还没名字。(如果我记忆准确的话)我提议,从拉丁词根看,Multics意图提供“包罗万象”的功能,而新系统顶多择一而从,应该拿uni来替代multi[3],叫它“UNICS”。
[ 上一页 ]  [ :1.700435588e+09 ]  [ 下一页 ]