分类: 系统运维
2012-03-27 17:44:54
ISO C、IEEE POSIX和单一UNIX规范这三个标准由独立的机构创建。标准仅仅一个接口定义,那怎么把这些标准带到真实的世界呢?厂商接受这些标准并把它们转换成真实的实现。本文我们讨论标准也会讨论它们的实现。
McKusick et al. [1996]的1.1部分给出了UNIX系统族谱的详细历史和漂亮的图。所有的一切始于在PDP-11上的UNIX Time-Sharing系统的第六版(1976)和第七版(1979),通常被称为Version 6和Version 7。这些是在贝尔实验室之外广泛使用的第一个发行版。共有三个发展的分支:
1、AT&T的System III和System IV,被称为UNIX系统的商业版本;
2、伯克利的加利福尼亚大学的4.xBSD;
3、UNIX系统的实验版本,在AT&T贝尔实验室的计算机科学研究中心开发,发展成为之后的UNIX Time-Sharing系统第8版、第9版,终于1990年的第10版。
UNIX System V Release 4 (SVR4)是
AT&T的UNIX系统实验室(UNIX System Laboratories,USL,前身为AT&T's UNIX
Software Operation)。SVR4整合了AT&A UNIX System V Release
3.2(SVR3.2)、Sun
Microsystems的SunOS操作系统、加利福尼亚大学的4.3BSD和Microsoft的Xenix系统的功能。(Xneix由
Version 7发展而来,有许多功能都被System
V整合)。SVR4的源代码在1989年末被公开,在1990年有第一个用户拷贝。SVR4同时遵守了PSOIX.1标准和X/Open
Portability Guid, Issue 3 (XPG3)。
AT&T也发布了系统V接口定义(SVID) [AT&T 1989]。SVID的Issue 3定义了UNIX系统V
Release
4的实现必须具有的功能。和POSIX.1一样,SVID描述了一个接口,而不是实现。SVID没有把系统调用和库函数区分开。必须查看真正实现的引用手
册才能区分两者。
4.4BSD
伯克利软件产品(Berkeley Software
Distribution,BSD)由伯克利的加利福尼亚大学的计算机系统研究组(Computer System Research
Group,CSRG)生产与发行。4.2BSD在1983年发行而4.3BSD在1986年发行。两者都在VAX迷你计算机上运行。下一个版本
4.3BSD
Tahoe在1988年发行,同样也在一台名为Tahoe的特殊迷你计算机上运行。(Leffler等人1989年箸的书详述了4.3BSD
Tahoe发行版)。接下来是1990年的4.3BSD Reno,支持了很多POSIX.1的特性。
最原始的BSD系统包含了AT&T的专利源代码,受到AT&T专利保护。你必须从AT&T拿到UNIX源码许可才可以得到BSD
系统的源码。之后多年来事情发生了变化,由于很多加入Berkeley系统的新特性都是由非AT&T源继承,越来越多的AT&T源码由非
AT&T源码替代。
在1989年,伯克利标识出在4.3BSD中的许多非AT&T源码,并且把它们作为BSD网络软件第一个发行版(BSD Networking
Software, Release 1.0)公开。接着有1991年的第2版,继承自4.3BSD
Reno版本。这样做的目的是基本上让4.4BSD系统不受AT&T许可的约束,使得任何人都能得到源码。
4.4BSD-Lite是CSRG的最终版本。由于与USL的合法战,它的出现延期了。在合法性的分歧被解决后,4.4BSD-Lite马上在1994年
发行,完全没有阻碍,不需要任何UNIX源码许可就可以得到它。CSRG在1995年发行一个bug修正版。这个版本为4.4BSD-Lite,
Release 2,是CSRG的最终的BSD版本。(McKusick等在1996年箸的书讲述了这个版本的BSD)。
这个由Berkeley开发的UNIX系统最开始运行在PDP-11上,接着移到VAX迷你计算机上,然后移到所谓的工作站上。在上世纪90年
代,Berkeley为流行的基于80386的个人电脑提供支持,从而产生了386BSD。这是由Bill
Jolitz完成的并且在1991年由Dobb博士的月刊上发表文档。它的许多代码都出现在BSD网络软件第2版中。
FreeBSD是基于4.4BSD-Lite的操作系统。在CSRG决定终止BSD的工作,而386BSD似乎被忽略太久的情况下,为了保持BSD的生产线,FreeBSD项目成立。
所有由FreeBSD生产的软件都免费公开binary和源码。FreeBSD5.2.1操作系统是本文要测试的四个系统中的一个。
Linux是一个提供丰富的UNIX编程环境的操作系统,而且在GNU公开许可下是免费的。Linux的流行是计算机工业的奇迹。Linux因为经常成为第一个支持新的硬件的操作系统而扬名。
Linux在1991年由Linux Torvalds创建,作为MINIX的替代品。草根努力迅速加入,世界各地的许多开发者都自愿奉献他们的时间来使用和增强它。
Linux的Mandrake 9.2版本是本文用来测试例子的系统之一。这个版本使用Linux操作系统内核的2.4.22版本。
Mac OS X基于与之前版本完全不同的技术。它的核心的操作系统被称为“Darwin”,基于Mach内核和FreeBSD的结合体。Darwin作为一个开源项目被管理,和FreeBSD与Linux一样。
Mac OS X 10.3版本(Darwin 7.4.0)是本文用于测试的另一个系统。
Solaris是由Sun Microsystems开发的UNIX系统版本。它基于系统V版本4,并经过了Sun Microsystems的工程师十多年的改善。它是唯一一个成功的商业化的SVR4的后裔,并且正式认证为UNIX系统。
Solaris 9 UNIX系统也是本文测试用的系统之一。
其它已经被认证的UNIX系统的版本有:
AIX:IBM的UNIX系统版本;
HP-UX:惠普(Hewlett-Packard)版本;
IRIX:由Silicon Graphics发行的UNIX系统版本;