对 POSIX 标准的一点认识
APUE 第二章主要讲述了 UNIX 的编程标准,开始部分讲了一些 POSIX 标准的知识。书里那一串串的标准机构缩写以及标准代码看得我眼晕。我觉得只需要知道 POSIX 、POSIX.1 以及 SUS 的概念就足够了,所以我将书上讲述的 IEEE 1003.1 标准的一系列修订过程,简化为下面的流程图:
IEEE 1003.1-1988 标准就是 POSIX标准,该标准只定义了操作系统接口。IEEE 1003.1 工作组对 1003.1-1988 进行了文本修订,未增加新的接口与功能,修订后的标准提交给 ISO/IEC,获准后就成为 ISO/IEC 9945-1:1990 标准,也就是最初的 POSIX.1 标准。
1993 年,IEEE 1003.1 工作组发布了 1003.1c-1995 标准,也就是人们常说的 POSIX 线程。1003.1c-1995 与 1003.1-1990 组合在一起提交给 ISO/IEC 组织后,获准为 ISO/IEC 9945-1:1996 标准。
后来 IEEE 1003.1 标准又经历多次修订,加入了多种新的子标准,到 IEEE 1003.1-2001 时,可谓集大成者,已经非常成熟了。
现在,POSIX.1 标准中囊括了 1003.1 系列的标准,又纳入了 1003.2 标准以及一部分 SUS (单一 Unix 规范),也包含了 ISO C 语言标准。
SUS 是只针对类 UNIX 系统的标准,它是 POSIX.1 标准的超集,也就是说,SUS 在 POSIX.1 标准的基础上又增加了新的扩展接口与功能。只有遵循 SUS 标准的操作系统才能称得上是 UNIX。