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

Tim*_*Tim 5 linux standard posix

来自 APUE

单一 UNIX 规范是 POSIX.1 标准的超集,指定了扩展 POSIX.1 规范提供的功能的附加接口。POSIX.1 等同于 Single UNIX Specification 的 Base Specifications 部分。

POSIX.1 中的 X/Open System Interfaces (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 内核就足够了?

sch*_*ily 5

Linux 不完全兼容 POSIX。例如,有些系统调用的行为不同(抱歉,我目前不记得到底有什么区别;当我再次记得时,我将在这里描述它们)。

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

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

bash(它为 Linux 发行版编译的方式)例如带有不XSI兼容的内置echo函数,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

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

  • Linux 不是一个操作系统,只是一个内核,因此它本身不能兼容 POSIX。浪潮 K-UX 3.0 是经过认证符合 UNIX 03 的基于 Linux 的系统之一。 (6认同)
  • @StéphaneChazelas:您似乎误解了 POSIX 认证。如果 Martijn Dekker 确实根据奥斯汀团体标准提交了错误报告,这将导致更新的测试套件。获得印章并不意味着平台完全合规,而是意味着它通过了所有测试。任何获得印章的平台都需要每年重新检查一次测试套件实际版本的合规性。来自“/usr/xpg4/bin/sh”的增强型 ksh88 比“ksh93”或“bash”更接近 POSIX 标准,并且在检测到不合规情况时似乎会发生更改。 (2认同)