![Posix 是单一 UNIX 规范的子集吗?](https://linux22.com/image/126304/Posix%20%E6%98%AF%E5%8D%95%E4%B8%80%20UNIX%20%E8%A7%84%E8%8C%83%E7%9A%84%E5%AD%90%E9%9B%86%E5%90%97%EF%BC%9F.png)
我知道一个关于Posix 和 SUS 之间的区别已经被问到并回答得很漂亮。
不管怎样,答案似乎暗示了 SUS“包含的内容比 Posix 多”的可能性,并且 SUS 中的某些内容没有包含在 Posix 中。
一个答案特别指出 XSI (XOPEN) 选项组是唯一的区别,但补充说 SUS 似乎不再关心它了。
现在我想知道是否还有其他区别,或者它们只是由于历史原因而命名不同?
而且,维基百科似乎表明存在差异,并且 Posix 是 SUS 的核心:
尽管系统开发人员通常致力于遵守构成单一 UNIX 规范核心的 POSIX 标准,但很少有基于 BSD 和 Linux 的操作系统被提交以符合单一 UNIX 规范。
答案1
没有其他区别。
SUSv4 2016 版网站指出它是
技术上与 IEEE Std 1003.1 2016 版和 ISO/IEC 9945:2009 相同,包括 ISO/IEC 9945:2009/Cor 1:2013(E) 和 ISO/IEC 9945:2009/Cor 2:2017(E),并添加了X/打开诅咒。
IEEE 标准 1003.1 是 POSIX。
您还可以通过查看来验证这一点目录:XBD、XSH、XCU、XRAT是POSIX的四个部分,SUSv4中只留下XCURSES,POSIX中没有。所有 POSIX 都在 SUSv4 中,因此 POSIX 是 SUSv4 的子集。
答案2
以前,POSIX 并不是一个完整的 UNIX 标准,而是于 1988 年开始,仅对 libc 中的内容进行了描述。
1992年,增加了关于命令的描述,但太基础了,人们不喜欢它。
由于政府等需要制定更好的标准,因此单一 UNIX 规范 (UNIX-95) 于 1995 年左右开始作为 POSIX 的“增强”,并定义了人们的需求,例如进程需要能够至少属于多个组。
后来IEEE减少了他们在POSIX上的工作,并且从SUS Issue 7(IIRC)开始,IEEE完全停止了他们自己的工作。此后,经过 IEEE 委员会的一些内部投票后,IEEE 标准通常会在 SUS 标准之后 6-12 个月发布。
因此,今天,SUS 是基本标准,IEEE 也受其约束。