用他们自己的话来说:Unix先驱们记得那些美好的时光

我们找到了为我们带来Unix操作系统的先驱者,并请他们分享一些早期Unix开发的记忆。

Unix协作开发Ken Thompson1966年在贝尔实验室工作直到2000年12月退休。他回忆起这个恶作剧:

Unix室在六楼,在贝尔实验室的一端。自助餐厅在一楼大约四分之一英里外。有几十条路可以步行去吃午餐。你可以从四五层楼梯中选择一层或者六层楼的任何一段。有一天,我们走过正在装修的四楼。它看起来像一个被炸毁的城市。墙壁和天花板都是敞开的,管道和电线到处挂着。我注意到天花板上好像有很多扬声器。我一直想使用贝尔实验室的广播系统,认为这是一个完美的机会。”

[也:Unix的最后日子

庆祝Unix的英雄

“晚上,我更仔细地检查了扬声器,发现它们不是真正的扬声器,而是白噪声传感器。我把电线追到了一个装有发电机和放大器的面板上。没有任何特别的想法,我借用了面板的钥匙,复制了它们,又放回去了。几个月后,在所有的施工完成后,我在我的桌子上发现了钥匙,并决定调查一下。发电机是有源的,放大器的音量设置为1。在办公区域,我能听到噪音,但只是因为我知道它就在那里。”

“好吧,我开始每周把音量调高一个等级。在去自助餐厅的路上,我每周至少要穿过办公区一次。当音量达到8时,仍然没有人注意到它,但对我来说,它听起来像尼亚加拉瀑布。办公室里的每个人都在互相大喊大叫。在那一刻,我忍不住笑了。经过询问,我告诉我的午餐伙伴发生了什么事。这个消息像病毒一样传播开来,就在第二天,仪表板被打开了,放大器被移走了。我仍然能在脑海中想象两个人坐在桌子对面,在正常的对话中互相大喊大叫。”

Doug McIlroy还记得Unix的合作开发者丹尼斯·里奇他于2011年去世。

丹尼斯·里奇

丹尼斯·里奇

Ken Thompson无疑是Unix最初的动人精神,但Dennis Ritchie从一开始就参与其中。我们必须感谢丹尼斯发明了C语言。C语言使Unix易于修改,并最终易于在新硬件上安装。事后看来,人们可能会把C看作是以前实践的升华。不是这样的。丹尼斯详细地讨论了如何充分利用字节寻址机器的难题。他最终想出了一种巧妙的方法来调和地址算法和索引——这是一项非常正确的发明,一旦你看到它,你就会认为你一直都知道它。当Unix传播到各种各样的计算机时,C语言及其派生语言传播得更远,这进一步证明了C语言的正确性。C语言成为了实现各种系统软件的首选语言,无论是在Unix内部还是外部。C甚至影响了硬件架构:被提出的指令集的评估部分是基于C编译器对它们的利用程度。

“里奇和汤普森是一支了不起的团队;他们像演奏乐器一样演奏Unix和C语言。他们有时几乎是一个子程序一个子程序的基础上划分工作,如此融洽,几乎像是一个人的工作。事实上,正如丹尼斯所述,他们曾经把信号交叉,写了相同的子程序。这两个版本不仅计算出了相同的结果;他们用相同的源代码做的。他们的产量惊人。有一次我数了一下他们在前一年写了多少代码——10万行。惊人并不意味着草率。肯和丹尼斯有正确的设计意识。 They write code that works, code that can be read, code that can evolve.”

彼得·诺伊曼记得乔Ossanna他于1977年去世。

麻省理工的Joe和Stan Dunten是在输入输出系统问题上最有经验的两个人。他们成为贝尔实验室和麻省理工学院的Multics I/O子系统的“首选”人员,以及为了适应Multics的其余部分而必须做的工作。

“乔对那个领域的一切都有惊人的把握。他对多国部队的努力是无价的。他也是一个热情、体贴的人。我非常想念他。”

道格拉斯McIlroy开发分享了Unix实验室的生动记忆

“对我来说,最让我兴奋的是管道的引入——这是一个经常被提起的故事。1964年,当Conway发表协同例程的想法时,我就被流处理迷住了。一段时间以来,我一直在游说直接进行进程到进程的IO,但直到我想出了“pipe”这个吸引人的名字,并提出了一个可行的shell语法时,Ken Thompson才决定这么做。它发生在一夜之间,第二天,我们有一个奇妙的狂欢,看看这个。“不到一个星期,就连我们的秘书也开始用水管了,好像这个功能一直都在似的。”

“C语言的诞生,我认为即使在今天,它也可以被称为基本的主力语言——它是无数其他语言和系统的实现语言。

“我不知道Unix和Linux服务器的数量。我知道,每当我查看Linux的引擎盖时,我的心都会下沉。它已经被爱的双手喂得太饱了。超过240个系统调用!g的来源!带有250页用户手册的AC编译器(不包括语言定义)!一个简单的翻页器,“less”,有超过40个选项和60个命令!这证明了开源可以像商业专家一样滋生怪物。不过,这个怪物奇迹般地奏效了。”

彼得·诺伊曼解释了Unix的词源。

不要相信彼得·萨卢斯书里的故事,我给它取了一个名字,Unics。我不认为我曾经宣称过,尽管我确实对Ken系统的原始版本的双关语做出了贡献,即阉割了一个用户的多用户(阉割者)。布莱恩·克尼根很可能是unics的创始人。贝尔实验室的公关人员最终希望改用Unix,可能是为了避免双关语。”

“我记得有一天肯来吃午饭(他总是编程到凌晨),带着一个他写的在PDP-7上运行的一千行操作系统内核,而Max Matthews有一台PDP-7,没人在用。我认为它只是一个单用户系统,所以第二天早上,Ken又带来了上千行代码,它就变成了一个多用户系统。剩下的都是历史了……”

陆克文堪分享美好的回忆,还有他离开的原因。

“因为我有孩子,我倾向于正常工作时间。如果没有这样的限制,肯和丹尼斯通常会在下午早些时候来工作,一直工作到晚上。在设计Unix的早期,Ken、Dennis和我养成了每天在服务餐厅吃午饭的习惯,据我记得,服务餐厅下午1:30就关门了。大多数时候,在中午时分,我不得不打电话给肯和丹尼斯,提醒他们在餐厅关门前来上班。我们会在餐馆打烊前去吃午饭,在我们的午餐桌旁工作到下午。工作人员习惯了清理我们周围的环境,然后把我们留在那里工作。

“有一天,肯、丹尼斯和我在办公室里用黑板设计Unix文件系统。贝尔实验室刚刚推出了一种全天候可用的电话听写系统,我一直想尝试一下。所以,当我们结束这一天的工作时,我拿起电话,口述了我们的设计。第二天,纸条就到了我的桌子上。这些笔记很有用,尽管打字员试图弄懂技术术语的尝试很滑稽。在使用这些笔记继续我们的设计工作后,我把它们扔掉了。我很想现在就拿到这些笔记。在我离开Unix项目几年后,我、Ken和Dennis为Unix文件系统提交了一份专利申请,请我签名。我签了名,但没有留下副本。我希望我有。 Subsequently the patent was denied because, I was told, the U.S. Patent Office, at that time, was unsure about and uncomfortable with software patents.

“我离开是因为肯、丹尼斯和我在没有机器的情况下已经尽可能地使用了Unix。但是,当我们要求资金购买一台机器时,我们被告知刚刚放弃MULTICS的BTL不愿意资助另一个操作系统。我相信了管理,于是离开了Unix项目,成立了一个新的研究小组(负责构建后端数据库机器)。我经常说,那是我最后一次相信管理层的话。肯和丹尼斯去了专利部门(我被告知),承诺如果他们提供一台机器,就会提供一个系统来完成他们的文书工作。我相信,这就是为什么早期的Unix有这么多文本处理工具(nroff、troff等)。”

Brian Kernighan关于管道和管道的聊天:

“很难想象Unix系统在过去40年里已经走了多远。稍微搜索了一下,我想起了Dennis Ritchie的精彩评论,他说:“Unix的安装数量已经增长到10个,预计还会更多。”我想这句话可以追溯到1972年左右,可能是第三或第四版的时候。我还记得几年之后,有一次,有人从纽约时报(还记得报纸上还有分类广告的时候吗?)在贝尔实验室的Unix房间里,人们一致认为,在某种程度上,Unix已经成为了一个大联盟;它已经来了。”

“在1979年发表的《Unix的进化》(The Evolution of Unix)的论文中,丹尼斯·里奇(Dennis Ritchie)说,‘关于旧记忆,令人欣慰的一点是它们总是呈现出一种玫瑰色。记忆固定在什么是好的,什么是持久的,以及帮助创造改善生活的快乐上。’我很珍惜那些美好时光的很多回忆。”

“在某些方面,Unix房间在提供一个巨大的开放空间,人们可以在这里工作或只是闲逛方面走在了前面。它经常是嘈杂的,但它是非常有效的沟通。每个人都有一个私人办公室,但每个人都花一些时间在公共空间,也许只是喝咖啡,或问一个关于某事如何工作的问题。当系统很小、团队很紧凑的时候,这里也是听取新想法和新项目的地方。”

“我记得有一天,新的‘管道’特性刚刚在shell中实现。多么巧妙的想法:把一个程序的输出变成另一个程序的输入。当人们修改程序时,出现了一种狂热的活动,以便它们能够在管道中工作,而不仅仅是通过文件参数。在我玫瑰色的记忆中,它可能只持续了一天,但在某些方面,它永远地改变了世界。”

Michael Lesk:

Unix诞生的时候,我们只有键盘输入和最小的图形处理能力。因此,文本处理软件输给了所见即所得方法。结果是,当我用手写表时,创建表更容易;但是,用软件脚本生成表格就比较困难了。这很适合行业——当成功是通过数眼球来衡量的时候,行业喜欢要求用户亲自在场并集中注意力的程序。但它增加了连接多个应用程序的工作量,这是Unix上‘管道’机制的一大优势。”

比尔快乐

比尔快乐

Bill Joy透露了Berkeley Unix的起源:“30多年前,我将Unix改为在VAX上使用虚拟内存运行。我当时在新泽西州的贝尔实验室,和最初的Unix研究小组在一起。我和Steve Bourne聊天,他和我一样,为Unix编写了一个新的shell(命令行解释器)。”

他提到了另一台机器,在不同的部门,他们会喜欢我的新Unix。一天晚上,我们熬了一整夜,改变了操作系统——第二天早上人们来的时候,他们使用的是Berkeley Unix,而不是他们之前运行的内部(非研究型)贝尔实验室版本。这是一个相当大胆的改变,没有广泛的通知或许可请求(而且;因此,否认)。”

“但一切都进行得相当顺利;新系统更可靠、更快。对我来说,这是一个“火上加油”的时刻,标志着Berkeley Unix真正的到来。众所周知,Berkeley Unix带来了TCP/IP互联网协议的高质量实现。它确实是第一个高性能的,并且拥有现在所谓的‘软件定义的网络’。”

“我从来就不理解网络硬件黑盒子的重点。对我来说,软件定义的网络是前进的方向。也许这就是为什么Sun和思科是两家独立的公司,尽管它们都来自斯坦福大学,硬件也相似。”

大卫•科恩讲述了饼干的故事,外加“一个真正的伍迪·艾伦时刻”:

12 第1页
第1页共2页
工资调查:结果在