📄 00000003.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: raner (lilo), 信区: Linux <BR>标 题: UNIX演义(7-9) <BR>发信站: BBS 水木调试站 (Thu Jun 4 17:00:52 1998) <BR> <BR> <BR>本文译自"Life with UNIX(R) -- A Guide for Everyone" <BR>译者向次书的两位作者Don Libes, Sandy Ressler表示衷心的感谢,他们为人们更好地 <BR>了解UNIX作出了贡献。 <BR> <BR>中文翻译 BlueOcean ( <A HREF="mailto:para@cs.sebuaa.ac.cn">para@cs.sebuaa.ac.cn</A> ) <BR> <BR>我们希望这些文件中的资讯能对你有所帮助,但是并不保证是正确的,若发生损害请 <BR>自行负责 <BR> <BR>----------------------------------------------------------------------------- <BR>UNIX演义(四) <BR> <BR>1.4 1979 - 第七版 <BR>1979年UNIX的第七版发行了。Version 7包括了一个完整的K&R C编译器,它首次包括了 <BR>强制类型转换,联合和类型定义。系统还提供了一个更为复杂的Shell(称为"sh"或 <BR>"Bourne shell",取自它的作者之一,Stephen Bourne)。系统支持更大的文件。由于不 <BR>懈的努力移植的结果,核心更加鲁棒,系统有了更多的外设驱动程序。 <BR>第七版的程序员手册以达到了大约400页(仍然可以很合适地装在一卷里)。UNIX的其它 <BR>读物则成为了第二和第三卷,大约各有400页。 <BR>在贝尔实验室,John Reiser和Tom London将V7 UNIX移植到了VAX机上。这次移植称为 <BR>UNIX32V。在某种程度上,VAX是一个大一点的PDP-11,按这样的理解移植工作相对容易 <BR>些。为了让UNIX快速移植和跑得快点,VAX上的特殊硬件功能(换页)被忽略了。虽然如此, <BR>由于VAX比PDP-11有了相当大的地址空间(4Gb),不带换页功能的UNIX仍旧在实验室里广 <BR>为流传,且用了好一段时间。伯克利也获得了该版本并作为进一步研究的基础。 <BR>Whitesmith是第一个商业C编译器供应商。不幸的是由于在许可证问题上不够明确,C编 <BR>译器的库函数不得不故意使用不兼容的函数名和参数规范。之后,C语言的用户接口 <BR>(函数名)被裁决为不能拥有版权,现在Whitesmith的C与UNIX兼容了。 <BR> <BR>----------------------------------------------------------------------------- <BR>UNIX演义(五) <BR> <BR>1.5 Politcs - 第一部分 <BR>在UNIX诞生时AT&T是一个由许多与电讯有关的公司的集合,包括Bell Telephone <BR>Laboratories(经常称为BTL,Bell,Bell Labs,或The Labs)和Western Electric Co. <BR>(WECo)。由于一项早期的反托拉斯法案,AT&T被禁止参加未规范的领域的商业活动。尽 <BR>管她可以基于UNIX进行研究但她不能基于UNIX去做市场。事实上不容许进入计算机软件 <BR>领域尚不明确,但似乎如果它有利可图AT&T就和那个反托拉斯法案相冲突。不管怎样, <BR>作为商品,UNIX似乎是一个误区。很自然,管理当局是不会资助开发一个非盈利产品的。 <BR>这就是70年代Ken和Dennis所面对的情况。 <BR>处于莫雷山(Murray Hill)的贝尔实验室是整个UNIX开发的地点,Dennis和Ken就在这工 <BR>作,他们并不关心产品开发。他们有许多新奇有趣的玩意要和他们的新Baby玩呢!然而 <BR>这一切太别扭了,UNIX在实验室里如此流行,但你不能把它向外部发布。此外,没人对 <BR>UNIX的支持负直接责任。根据Tannenbaum所述: <BR> <BR> BTL didn't really have a distribution policy in the early days, you <BR> got a disk with a note: <BR> <BR> Here's your rk05,Love,Dennis <BR> <BR> If UNIX crapped on your rk05,you'd write to Dennis for author. <BR> <BR>最终贝尔实验室屈服与发布UNIX的压力。她制定了一个简单的许可证策略:没有支持, <BR>没有试用期,没有担保,没有广告,没有bug修改,并且先付款。 <BR>然而大量的试用UNIX的人都在贝尔实验室内部。为了支持这些项目,一个称为USG(UNIX <BR>Support Group)的UNIX支持小组创立了。不过还是很不幸,USG只容许提供支持,绝不 <BR>能开发。这样的情况造成了,不管在贝尔实验室内外用户都在做自己的开发。而随UNIX <BR>一起获得的源码更刺激了这种情况。USG发行了几个UNIX,它们中的大部分都只限实验 <BR>室内部使用。 <BR>与此同时,PWB正在基于UNIX的另一个版本同时提供支持和开发。此外,PWB能够既向内 <BR>部和外部同时发布软件。不言自明,这两个小组之间是多么厌倦对方。她们都认为自己 <BR>做的事是对的,而对方做的是错的。例如,PWB的Shell与USG的不同。 <BR>另一个UNIX的版本称为MERT(Multi Envrionment Real-Time)。MERT与虚拟机的概念十 <BR>分相似。UNIX(甚或是她的特殊版本)可以在其上运行,并且还可使用MERT的实时工具。 <BR>在实验室外面许多许可证获得者都选择使用PWB/UNIX或Ken和Dennis的研究版本的UNIX, <BR>而在实验室内部则使用USG的UNIX,MERT或两者都用。(事实上还有许多的版本。例如, <BR>LSX是一个用在LSI-11微处理机上的UNIX版本。)UNIX的多样性很是惹人烦恼。 <BR>这时的许多UNIX许可证用户都在PDP-11上安装了UNIX版本中的一个或将其移植到其它硬 <BR>件上。对大多数程序员来说在UNIX上工作使他们比在其它系统上感到更满意。这是因为: <BR> <BR>1) UNIX自带了完整的源码和文档。她自支持。你与UNIX的开发者有着十分一致的环境。 <BR> 你可以自己修改UNIX。 <BR>2) UNIX很小。你可以理解代码。大多数的算法都很简单。你修改UNIX时对自己做了什 <BR> 么很清楚。 <BR>3) 没有什么要避免的担保。既然系统没有支持你就不损失什么。最坏时你不过就是拿 <BR> 出你的备份磁带。而最好时你能使系统更快或加一个新功能。 <BR>4) UNIX的手册很易读。它们只有几百页,而且把它们全读了并不困难。一个人就能完 <BR> 全掌握它。 <BR> <BR>几个成为UNIX温床的机构是: <BR> <BR> Rand,Hardvard and BBN <BR> <BR>兰德(Rand)已经开发了第一个交互式分时系统并且很快就意识到了UNIX的价值。兰德与 <BR>BBN的Walt Bilofsky签定共同开发一个UNIX下的全屏幕编辑器。"Rand editor",这就 <BR>是第一个UNIX下的全屏幕编辑器,而且它成为第一个在实验室外部开发而又是必不可少 <BR>的程序。你可以想当然的认为在安装UNIX之后的第二步就是安装Rand editor。(说实话, <BR>Rand editor有它自己的毛病,最可恶的是它极浪费CPU和带宽资源。)这种情况在继续。 <BR>你装上UNIX之后立即装入许多其它公共领域的工具(如,GNU Emacs,RCS,Usenet),它们 <BR>都是程序员的必备之物。甚至今天,人们也是对直接从工厂里出来的UNIX不满意。 <BR>在写兰德的编译器的那个时候兰德和BBN都没有UNIX系统。她们去哈佛租机时,哈佛有一 <BR>个Version 4系统。作为回报,哈佛可以使用Rand/BBN的改进软件。后来哈佛也开始加入 <BR>自己的改进,其中的一部分又反过来融入了Version 5。例如,Brent Byer为支持PDP-11 <BR>的分离映射而加入了分离的I/D(指令/数据)空间。 <BR>BBN继续履行合同,她后来在伯克利的UNIX开发中起了非常重要的作用。此时BBN已参加 <BR>了Arpanet计划(Arpanet是为美国国防部(DoD)开发的网络)。BBN利用她们的经验赋予 <BR>UNIX使用DoD协议来通讯的能力。这些工作后来在伯克利得到改进并捆绑在伯克利的软件 <BR>发布中。结果使用伯克利UNIX的公司都可以免费地进行网络互连。这导致了早期UNIX与 <BR>网络的亲密关系。 <BR> <BR> Lawrence Berkeley Laboratory - 虚拟操作系统和软件工具计划 <BR> <BR>在丹尼斯山(Dennis Hill)的劳仑斯实验室里,Deborah Scherrer和Joe Sventek拜读了 <BR>有Brian Kernighan和P.J.Plauger合著的软件工具"Software Tools"一书,他们觉得次 <BR>书很有价值。他们实现了书中的所有工具,包括一个Shell。更有趣的事他们并没有在一 <BR>台跑UNIX的机器上实现了它们。 <BR>为了可移植所有的源码都是用Fortran66写的,Fortran66是当时在几乎所有的机器都能得 <BR>到的唯一语言。Fortran不适于系统编程,不久Ratfor("Retional Fortran")诞生了。 <BR>Ratfor试图用C语言的许多特点(如,控制流结构)来改进Fortran。Ratfor被实现为一个预 <BR>处理器,输入Ratfor代码产生Fortran代码。Fortran代码可由任何Fortran编译器来编译。 <BR>这样任何人都可以最小的代价在自己的机器上安装软件工具。 <BR>他们花了不多的时间就完成将Kernighan和Plauger的工具移植到其它几个操作系统的任务。 <BR>同时,他们也掌握了对不同机器的抽象什么是有效的什么不是。在1979年,随着软件工具 <BR>计划被认同,她与USENIX(最大的面向技术的用户组)联合举办了会议。他们的许多抽象都 <BR>与UNIX很相似,许多人都看好软件工具计划,并希望通过她来将UNIX引入他们已有的机器。 <BR>在会议之后又有许多的移植完成了,不久一份关于虚拟操作系统(VOS)的规范出台了。VOS <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -