知识点滴 - POSIX vs SUS vs LSB

SUS扩展了POSIX;LSB扩展了POSIX和SUS,但有一些冲突。

只有经过SUS认证的操作系统才能被称为 "Unix"(因为SUS的所有者Open Group拥有Unix商标);并非所有的Linux发行版都符合LSB,例如Debian和Ubuntu就不符合。

POSIX

Portable Operating System Interface(POSIX) / 可移植操作系统接口 :由IEEE计算机协会指定的一系列标准,用于保持操作系统之间的兼容性。

从官方正式角度,POSIX不能简单的认为就是UNIX,因为IEEE对UNIX商标没有所有权。

POSIX标准化包括:

  • C头文件

  • shell和unitilities:ls、awk、echo、vi等。

  • 系统接口:系统调用和库函数

认证种类包括:

  • POSIX认证(通过自动的一致性测试):MacOS、Oracle Solaris、华为EulerOS

  • 基本上符合POSIX标准: Linux, FreeBSD, Android, Darwin

请注意,Darwin构成了macOS的基于Unix的核心组件集。Darwin大部分与POSIX兼容,但从未被认证,macOS则通过认证了。

Zsh能够模拟POSIX shells,但其默认工作模式是不兼容POSIX的。

用--posix选项调用Bash或在脚本中使用set -o posix语句,会使Bash基本符合POSIX。

具体介绍参见:https://en.wikipedia.org/wiki/POSIX

Single UNIX Specification / 单一UNIX规范

POSIX标准构成了单一UNIX规范的核心。有时我们用 "SUS "来指代完整的标准,而用 "POSIX "来指代基本标准和可能的不以UNIX为重心的选项组。(这意味着POSIX是SUS的一个子集)

只有符合要求的操作系统才能使用 "UNIX "商标。很少有基于BSD和Linux的操作系统是符合单一UNIX规范要求的。

macOS是符合SUS规范的,可以查看以下网址:The Register of UNIX® Certified Products

现在,Open Group同时负责认证POSIX和SUS。POSIX和SUS在2001年后开始趋于一致。

SUS的版本,在Opengroup网站上查,有UNIX 95、UNIX 98、UNIX03和UNIX V7等版本。

Linux Standard Base (LSB)

https://en.wikipedia.org/wiki/Linux_Standard_Base

Linux不是经过POSIX认证的系统,想通过POSIX认证的话代价会很高。

LSB由Linux基金会的一个工作小组维护。

LSB以POSIX、SUS和其他一些开放标准为基础,但在某些方面对它们进行了扩展。

例如,LSB规定了:标准库、一些扩展POSIX标准的命令和工具、文件系统层次结构的布局、运行级别、打印系统,包括打印缓冲系统CUPS和打印过滤器工具Foomatic以及X窗口系统的一些扩展。

ABI:application binary interface,应用程序二进制接口(LSB被设计为二进制兼容)。

2015年9月,Debian项目确认,虽然对文件系统层次标准(FHS)的支持将继续,但对LSB的支持已经被放弃。2015年11月,Ubuntu也随Debian一样。

要获得LSB版本,在终端运行命令:

$ lsb_release -a

比如我的Ubuntu 20.04.1的结果:

$ lsb_release  -a

No LSB modules are available.

Distributor ID:    Ubuntu

Description:    Ubuntu 20.04.3 LTS

Release:    20.04

Codename:    focal

LSB和POSIX标准之间是有冲突的。

具体的LSB标准请参见:LSB Specifications

参考:

1,POSIX vs SUS vs LSB

猜你喜欢

转载自blog.csdn.net/guoqx/article/details/130940714
VS
今日推荐