全部博文(168)
分类: BSD
2007-02-08 11:29:48
1.2 BSD和其他系统
# CSRG在BSD中不仅融入了UNIX系统的技术,也吸收了其他操作系统的思想。4BSD的终端驱动程序有许多功能来源于TENEX/TOPS-20。作业控制(job control)这一概念(不是实现)源于TOPS-20和MIT的ITS(Incompatible Timesharing System)。最早在4.2BSD上提出,而最终在4.4BSD上实现的虚拟内存接口,是以首先在TENEX/TOPS-20上出现的文件映射和页面级接口为基础的。FreeBSD目前的虚拟内存系统(参见第5章)则借鉴了Mach系统----4.3BSD的一个分支。在为BSD设计许多新功能(facility)时,Multics经常成为参考对象。
# 在CSRG的设计中,高效总是被当作一个首要因素给予优先考虑。有些在效率上的改进,是因为和VAX上的专有操作系统----VMS[Joy, 1980, Kashtan, 1980]进行了对照而做出的。
# 其他UNIX的变体也借鉴了4BSD的特点。AT&T UNIX System V [AT&T, 1987]、IEEE POSIX.1标准[P1003.1, 1988],以及与之相关的美国国家标准局(National Bureau of Standards, NBS)联邦信息处理标准(Federal Information Processing Standard, FIPS)都吸收了下面这些4BSD的特色功能:
= > 作业控制(详见第2章)。
= > 可靠信号(详见第4章)。
= > 多个文件访问权限组(详见第6章)。
= > 文件系统接口(详见第8章)。
# X/OPEN组织(原先只是由欧洲的一些厂商组成,而现在却包含了大部分美国的UNIX厂商)发表了X/OPEN Portability Guide [X/OPEN, 1987],最近又发表了Spec 1170 Guide。这两份文档规定了内核的标准接口,以及提供给UNIX系统用户的大量标准工具程序。1993年Novell从AT&T购买UNIX的时候,它把UNIX这个名字的专有权转给了X/OPEN。这样一来,任何试图标榜自己为UNIX的系统必须符合X/OPEN制定的接口规范。迄今为止,BSD系统还没有通过X/OPEN的接口规范测试。POSIX.1标准也是一种ISO国际标准,成为SC22 WG15。因此,在世界上大多数类UNIX的系统中都接受了POSIX标准里的功能。4BSD套接口进程间通信机制(详见第11章)在设计上具有良好的可移植性,虽然它从来未随着AT&T System III一同发布过,但它的确很快被移植到了该系统上。4BSD实现的TCP/IP网络协议簇(详见第13章)被广泛用作各种平台上TCP/IP实现的基础,从运行System V的AT&T 3B计算机到VMS,再到像VxWorks这样的嵌入式操作系统都是如此。
# CSRG与产生基于4.2BSD和4.3BSD系统的计算机的那些厂商保持着紧密的合作关系。这种共同发展的关系使4.3BSD的进一步移植工作变得畅通无阻,而且极大地促进了当时正在进行的系统开发工作。
# 用户群对系统发展的影响
# 伯克利的大量开发工作都是为响应用户群的需求而完成的。新点子和新要求不仅来自主要的直接资助单位DARPA,也来自遍布世界各地的公司和大学里的系统用户。
# 除了用户群之外,伯克利的研究人员还从现有的其它软件中得到启发。澳大利亚、加拿大、欧洲、日本以及美国的大学机构为4BSD的发展做出了贡献。这其中包括一些很重要的功能,如自动配置与磁盘配额机制。虽然出于许可证和价格方面的原因,限制了在4BSD中使用System III和System V中的任何代码,但还是有一些思想(如系统调用fcntl)是从System V来的。除了在发布版本中包括的软件之外,CSRG还发布了一套由用户所提供的外围软件程序。
# 公共域时区处理软件包(public-domain time-zone-handling package)就是一个由用户群开发出的工具软件的现实例子,4.3BSD Tahoe采用了这个软件包。它由一个国际性的研究小组设计并实现,小组成员包括Arthor Olson、Robert Elz和Guy Harris,之所以成为国际性,部分原因是由于开发是在USENET新闻组comp.std.unix里进行讨论的。这个软件包从C的库函数中完整地提取出时区转换规则来,并将他们存入文件,这样不需要改动任何代码就可以改变时区规则;因此对于只有可执行代码而没有源代码的UNIX系统来说,这个软件显得特别有用。这种方法还能让单个进程选择自己的时区,而不是在整个系统范围内只保持一种时区规则。这个软件包包含一个大的时区数据库,从中国到澳大利亚再到欧洲的时区设置都在其中。只要有了整个数据库,4.4BSD系统就不再用针对不同的地区作不同的设置,因此也就简化了系统的发布。BSD采用这种时区软件包引起了一些厂商的主意,例如Sun Microsystem公司,也把它加到了自己的UNIX系统中。