UNIX 标准

ISO C 标准

为了 UNIX 操作系统核心的开发,肯·汤普逊和丹尼斯·里奇在1972年共同发明了C语言。

1978年,丹尼斯·里奇(Dennis Ritchie)与布莱恩·柯汉林(Brian Kernighan)合作出版了 C 语言的第一本著作《C 程序设计语言》,后来被程序员亲切地称作”K&R”。

在 ANSI C 标准出现之前,《C 程序设计语言》的第一版其实是作为 C 编译器作者的事实标准的。随着美国国家标准协会(ANSI)对 C 语言标准化工作的展开,该书作者则有意面向开发者来编写本书,并于1988年4月出版了它的最新版,即第二个版本。

1989年,美国国家标准协会(ANSI)发布了 C 语言的第一个 ANSI C 标准,编号为 ANSI X3.159-1989,被称为 C89

1990年,国际标准化组织(ISO)成立 ISO/IEC JTC1/SC22/WG14 工作组,负责开发和维护国际标准的 C 语言。通过对 ANSI C 标准的少量修改,该工作组最终制定了 ISO/IEC 9899:1990 标准,简称 C90 (这里的 IEC 指的是国际电子技术委员会的英文缩写)。ANSI 也接受了国际 C 标准,并不再发展新的 C 标准。

1999年,ISO C 标准被更新,并被批准为 ISO/IEC 9899:1999,简称 C99

1999年以来,ISO 先后发布了 3 个技术勘误,分别是在2001年、2004年和2007年。

2011年12月8日,ISO 正式发布了新的C语言的新标准 C11,编号为 ISO/IEC 9899:2011。

2018年6年,编号为 ISO/IEC 9899:2011 的 C18 发布。C18 并没有引入新的语言特性,只对 C11 中的缺陷进行了技术修正和说明。表示标准版本的宏 __STDC_VERSION__ 被定义为 201710L

ISO C 标准不仅定义了 C 程序设计语言的语法和语义,还定义了其标准库。

附:C 标准库头文件

IEEE POSIX

IEEE :电气电子工程师学会

POSIX :Portable Operating System Interface(可移植操作系统接口,X 表示其对 UNIX API 的传承)

最初,”POSIX” 指的是发布于1988年的 IEEE Std 1003.1-1988,它仅是一个操作系统接口标准,后来则扩展成包括很多标记为1003的标准的一个标准族,这个名称是由 Richard Stallman 命名的。

POSIX 中的标准的正式的名称是 IEEE 1003,国际标准名称是 ISO/IEC 9945(由 IEEE 递交给 ISO 并修订的相应版本)。

SUS

SUS 表示 Single UNIX Specification(单一 UNIX 规范)的缩写,是 POSIX.1 标准的一个超集。

相关历史

UNIX System V Release 4 发布后不久,AT&T 就将其所有 UNIX 权利出售给了一家名为网威(Novell)的公司。

1993年,Novell 将 SVR4 的商标权卖给了 X/Open 公司。

1994年,X/Open 发布了单一 UNIX 规范第1版。

1996年,X/Open 与开发系统软件基金会(OSF)合并构成了一个新的组织 Open Group。

1997年,Open Group 发布了单一 UNIX 规范第2版。

2004年4月,Open Group 发布了单一 UNIX 规范第3版。

2010年,第4版的SUS 发布,简称 SUSv4。

FIPS

FIPS 代表的是联邦信息处理标准(Federal Information Processing Standard),这一标准是由美国政府发布的,并由美国政府用于计算机系统的采购。

什么样的系统才能称为 UNIX 系统

Open Group 拥有 UNIX 商标,他们使用 Single UNIX Specification 定义了一系列接口。一个系统要想称为 UNIX 系统,其实现必须支持这些接口。UNIX 系统供应商必须以文件形式提供符合性声明,并通过验证符合性的测试,才能得到使用 UNIX 商标的许可证。