整理单个Unix规范是什么以及涵盖的内容

2020-10-11 15:46:12

对于Unix的不同版本,我已经链接过很多次了(当我第一次链接到它时,它是2006年的第6期;它一直持续到2018年的版本)。但我一直不太清楚它涵盖了什么,没有涵盖什么,以及它与POSIX和类似的事情有什么关系。在昨天的条目让我再次浏览了SUS网站之后,我决定试着一劳永逸地解决这个问题。

我在这方面的主要资源是维基百科页面(Thesus FAQ声称最近更新了,但在重要方面显然已经过时)。奥斯汀公共标准修订小组(Austin Commons StandardsRevision Group)的页面也很有用。维基百科页面对SingleUnix规范的历史以及与之相关的一些事情有一个有用的概要。

正如各地所说,单一的Unix规范的核心是POSIX,它既是正式的IEEE标准,也是国际ISO/IEC标准(分别为IEEE1003和ISO/IEC9945)。POSIX引用了ANSIC(我相信C99)的版本,因为它指定的Unix API是用C指定的。POSIX标准涵盖了两个Clibrary API,即通过shell执行的命令(也是在POSIX中指定的),我相信类似于一些文件路径。据我所知,UnixSpecification中唯一的另一个标准是curses,它不是POSIX的一部分。

这意味着如果Unix命令或非Curses API在单一的Unix规范中,那么它也在POSIX中。这与我在在线单一UNIX规范中看到的内容相匹配,我只注意到它在谈论POSIX(也就是IEEE 1003.1)。因此,对于大多数目的,我可以互换地谈论POSIX&39;POSIX&39;或单个Unix规范,这与我过去认为的有所不同。

(我最初认为SU是POSIX的超集,它添加了POSIX中没有的重要的额外命令和要求。情况似乎并非如此。)。

我认为,由于各种政治原因,POSIX是Unix相对最低的标准,在实践中走得还不够远。这导致实际的Unix供应商聚集在一起,就实际上构成Unix的POSIX之上的额外一层内容达成一致,创建了单一的UnixSpecification。那些根本不是Unix派生的系统,如果他们尝试的话,就可能是POSIX兼容的(因此,根据我所了解到的,根据POSIX的起源,也可能是需要POSIX的美国政府合同的候选者),但是不能是Unix™,这是由单一Unix规范定义的东西。

显然,事实并非如此,或者至少在现代版本的SU中并非如此。这再一次向我展示了民俗的力量(特别是在我被它迷住之后)。