Linux 是否被认为符合 XSI 或很大程度上符合 XSI?

Linux 是否被认为符合 XSI 或很大程度上符合 XSI?

来自APUE

Single UNIX 规范是 POSIX.1 标准的超集,它指定了扩展 POSIX.1 规范提供的功能的附加接口。 POSIX.1 相当于单一 UNIX 规范的基本规范部分。

POSIX.1 中的 X/开放系统接口 (XSI) 选项描述了可选接口,并定义了必须支持 POSIX.1 的哪些可选部分才能被视为符合 XSI 的实现。其中包括文件同步、线程堆栈地址和大小属性、线程进程共享同步以及 _XOPEN_UNIX 符号常量(在图 2.5 中标记为“SUS 强制”)。只有符合 XSI 的实现才能称为 UNIX 系统。

SUS 完全由 POSIX 和 XSI 组成,对吗?

Linux(或 Ubuntu,特别是 Debian)是否符合 POSIX 标准?

Linux(或 Ubuntu,特别是 Debian)是否被认为符合 XSI 或很大程度上如此?我问这个是因为这样我就会知道 APUE 中标记为 XSI 的部分是否适用于 Linux(或 Ubuntu,特别是 Debian)。

我主要对API感兴趣,那么这是否意味着Linux内核就足够了?

答案1

Linux 并不完全符合 POSIX 标准。例如,有些系统调用的行为有所不同(抱歉,我现在不记得具体有什么区别;等我记起来时我会在这里描述它们)。

一个问题是,例如,Linux 不包含正确的waitid()系统调用(从参数中传递所有 32 位exit()),并且 Linux 内核人员不喜欢修复此问题。 (waitid()自 AT&T System V Release 4 起就已存在。.)

一些XSI功能在 Linux 中实现,但不是全部。

bash(它为 Linux 发行版编译的方式)例如带有不兼容XSIecho内置函数,dash不支持.这发生在 POSIX 采用一段时间后,Linux 获得了以 1 美元获得辅助认证的机会。multi byte charsXSI

如果您想获得正确的概述,您可能有兴趣在网络上搜索 Andrew Josey 撰写的关于 Linux 中 POSIX 不合规性的最终论文,该论文是在 Linux 人员告诉 Opengroup 他们不再有兴趣成为 Linux 的后撰写的。符合 POSIX 标准。

看:http://www.opengroup.org/personal/ajosey/tr20-08-2005.txt

顺便说一句:有传言称红帽最近收到了 POSIX 测试套件的副本,因此可能存在隐藏的正在进行的认证......

答案2

Linux 根本不符合 XSI。例如,它不提供系统头<stdio.h>。这是因为Linux只是一个操作系统内核。该内核需要额外的用户态实现有能力的符合 XSI 标准。

有多个 Linux 发行版,其中包括 Linux 内核、C 标准库的实现、shell、各种实用程序和其他各种组件。

所有这些部分组合在一起可能可能符合 XSI,但需要针对每种组合进行测试和验证。

相关内容