1969——1974,UNIX成长的前5年
Posted 软件那些事儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1969——1974,UNIX成长的前5年相关的知识,希望对你有一定的参考价值。
本文是我在知识星球写的《我所知道的UNIX的历史》系列文章,本文是收费的,在这里只能看一部分。因为UNIX的故事是故纸堆里的事情,有同样癖好的人极其稀少,我做电台深有感触。因为没有阅读量就没有广告收入,幸好有几十个人肯付钱,我才得以考古。
这篇文章有2775字,主要考古了UNIX出生后的前5年,也就是那篇对外宣告UNIX出世的论文——《UNIX Time-Sharing System》——发表之前的故事。
主要讲了如何立项,开发的过程,UNIX名字的来源,如何使用的B语言,里奇又是如何魔改B语言从而形成了C语言,里奇的建议如何为日后Plan 9埋下了浮笔,为了避免官司缠身成立的USG又是如何成了日后旷日持久的版权官司的主角。都在本文中有所涉及。
其中还讲了man这个命令的由来,与UNIX的立项有莫大的关系。
书接上文
当贝尔实验室决定退出Multics项目的时候,汤姆森和里奇的内心是痛苦的。从Multics项目组回来以后,这两个哥们决定上书领导,开发一个类似于Multics的项目,贝尔实验室刚刚从一个失败的操作系统泥潭里出来,常言道,刚出虎穴,又入龙潭,这也太执迷不悟了!理所当然的,他们的领导没有批准这个项目。
汤姆森在Multics项目组的时候,负责的项目是是用Fortran开发的一个游戏,这个游戏叫《太空旅行》,这个游戏最初是汤姆森在Multics上开发的,后来才为了运行这个游戏,首先他将游戏移植到GE的系统上。其实还有不少软件都是从Multics上移植过来的,比如启发vi这个编辑器的ed编辑器,就是汤姆森在Multics上实现的,还有一个版本是在上一次讲的CTSS上实现的。如果真的追下去,ed是山寨的一个叫qed(quick editor)的软件,ed,qed都是行编辑器,只能每次操作一行,那是因为当时的计算机没有屏幕,只能通过类似电传打字机的方式和计算机交互,每次只能输入一行,所以,编辑文件也是一行一行的处理,理解了这个,就知道为什么vi是一个巨大的进步了。
话题再回到汤姆森移植《太空旅行》上,一种说法是当时的GE运行时间太贵了,玩不起,一种说法是GE的可操作性太差了,不好玩。不管怎么说,汤姆森还是要另辟蹊径。于是,他看上了一台老旧的没人用的机器,DEC的PDP-7小型机。这个机器主要的作用是用来连接大型主机使用的,但是这个主机有一个比较快的硬盘,还有两个图形终端,也许可以玩双打了 :)
于是汤姆森和里奇就决定自己开发一个系统,当时只有PDP-7这么一台机器,要在这台机器上开发的工作难度并不小。这两个哥们就参考Multics,设计了包含文件系统,进程还有一组文本编辑器,《太空旅行》小游戏的操作系统。万事开头难,这和今天不同,他们什么都没有,没有合适的编程语言,没有编译器,于是工作的第一步是要给PDP-7写一个编译器。
这个工作是在GE的机器上做的,要经过给纸带打孔等一系列工作才终于完成,编译器工作的不错,可以支持两个用户,一个是汤姆森,一个是里奇。
他们两人的反常举动显然瞒不过同事的法眼,他们的同事Brian Kernighan知道了这件事,打趣他们两人,说这个系统应该叫UNiplexed Information and Computing System,来讽刺Multics,起初UNIX的名字叫UNICS,后来因为UNICS和UNIX同音,还少了一个字母,才变成了UNIX。这个叫Brian Kernighan的哥们也不是个普通人,后来,他也加入了UNIX的开发,现在名满天下的C语言入门书《The C Programming Language》和第一作者就是Brian Kernighan,第二作者是汤姆森,第三作者才是里奇。
接下来我再来讲一下UNIX开发的过程。
点击阅读原文可以直达 lmzdx.com
以上是关于1969——1974,UNIX成长的前5年的主要内容,如果未能解决你的问题,请参考以下文章
我的Python成长之路---第八天---Python基础(25)---2016年3月5日(晴)