21〓引言
在使各种风格的Unix和C程式设计语言标准化方面已做了很多工作。虽然Unix应
用程式在
不同的Unix版本之间进行移植是相当容易的,但是八十年代中Unix版本的剧增连同
他们之间
差别的扩大导致很多大工作(例如美国政府)需要对其进行标准化。
本章将介绍正在进行的各种标准化工作,然后讨论这些标准对本书所说明的实际U
nix实现的
影响。任何标准化工作的一个重要部分是对每种实现必须定义的各种限制的说明,
所以我们
将说明这些限制连同确定他们值的多种方法。
22〓Unix标准化
221〓ANSI C
在1989年后期,C程式设计语言的ANSI标准X3159-1989得到批准〔ANSI 1989〕。
此标准已
被采用为国际标准ISO/IEC 9899:1990。ANSI是美国国家标准学会,他是由制造商
和用户组
成的非赢利性组织。在美国,他是全面性的无偿标准交换站,在国际标准化组织(
ISO)中是
代表美国的成员。
ANSI C标准的意图是提供C程式的可移植性,使其能适合于大量不同的操作系统,
而不只是U
nix。此标准不但定义C程式设计语言的语法和语义,也定义其标准库〔ANSI 1989
第四章;P
lauger 1992;Kernighan及Ritchie 1988中的附录B〕。因为很多新的Unix系统(例
如在本书
中说明的几个Unix系统)都提供C标准中说明的库函数,所以此库对我们来讲是很重
要的。
按照该标准定义的各个头文档,可将该库分成15区。图21中列出了C标准定义的
头文档,
连同下面几节中说明的另外两个标准(POSIX1和XPG3)定义的头文档。在其中也列
举了哪些
头文档是SVR4和43 BSD所支持的。我们也将在本章中对这两种Unix实现进行说明
。
222〓IEEE POSIX
POSIX是个由IEEE(电气和电子工程师学会)制订的标准族。POSIX的意思是电脑
环境的可
移植操作系统界面(Portable Operating System Interface for Computer Envir
onment)。
他原来指的只是IEEE标准10031-1988(操作系统界面),但是,IEEE现正在制订P
OSIX族中
的其他有关标准。例如,10032将是针对shell和公用程式的标准,10037将是
系统管理
方面的标准。在1003工作组中有15个以上的子委员会。
和本书特别有关的是10031操作系统界面标准,该标准定义了"POSIX依从的"操作
系统必
须提供的服务。虽然10031标准是以Unix操作系统为基础的,但是他又不限定于
Unix和类
似于Unix的系统。确实,有些供给专有操作系统的制造商也声称这些系统将依从P
OSIX(同时
还保有他们的任何专有功能)。
由于10031标准说明了一个界面而不是一种实现,所以并不区分系统调用和库函
数。任何
在标准中的例程都被称为函数。
标准是不断演变的,10031标准也不例外。该标准的1988版,IEEE 10031-198
8经修改
后递交国际标准化组织(ISO),没有增加新的界面或功能,但修改了文本。最后的
文档作为I
EEE Std10031-1990正式出版〔IEEE 1990〕,这也就是国际标准ISO/IEC 9945-
1:1990
。该标准通常被称之为POSIX1,我们将在本书中使用此标准。
IEEE 10031工作组此后对其又作了更多更改,他们应在1993被批准。这些更改(
现在称之
为10031a)应由IEEE作为IEEE标准10031-1990的附件出版,这些更改也对本书
有所影响
,主要是因为贝克莱风格的符号链接很可能将被加到标准中作为一种所需要的功能
。这些更
改也很可能成为ISO/IEC 9945-1:1990的一个附录。在本书中,我们用注释的方法
来说明P
OSIX1的10031a版本,指出哪些功能很可能会加到10031a中。
POSIX1没有包括"终极用户"这样的概念。代之以规定某些操作需要"适当的优先
权",
POSIX1将此术语的定义留由具体实现进行解释。某些符合国防部安全性指导原则
需要的Un
ix系统具备很多不同的安全级。在本书中,我们仍使用传统的Unix术语,并指明要
求终极用
户特权的操作。
图21〓由各种标准和实现定义的头文档
223〓X/Open XPG3
X/OPEN是个国际电脑制造商组织。提出了一个七卷布可移植性指南,移为X/O
pen可移植
性指南,第三版〔X/Open 1989〕,我们将称之为XPG3。XPG3的第二卷(XSI系统
界面和头
文档)对类似Unix的系统定义了一个界面,该界面定义是在IEEE Std10031-19
88界面的
基础上制订的。XPG3包含了一些POSIX1没有的功能。
例如,一个POSIX1没有但XPG3却有的功能是X/Open的消息设施。该设施可由应用
程式使用
以在不同的语言中显示文档消息。
XPG3界面使用了ANSI C草案而不是最后的正式标准,所以在XPG3界面规格说明中包
含的某些
功能是不再使用的。这些问题很可能会在将来的XPG规格说明的新版本中解决。(有
关XPG4的
工作正在进行,很可能会在1993年完成)。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



