知识点滴 - POSIX vs SUS vs LSB

news/2024/11/14 14:19:43/

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


http://www.ppmy.cn/news/105398.html

相关文章

ThreadLocal精讲

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

如何使用 Megatron-LM 训练语言模型

在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。Hugging Face 🤗 Accelerate 的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够非常容易的…

Qt Quick系列(4)—定位元素

🚀作者:CAccept 🎂专栏:Qt Quick 文章目录 前言相对布局代码示例示例一示例二示例三示例四示例五示例六 简单"布局器"ColumnRowGridFlow 结语 前言 在Qt Quick中,可以使用以下方式来定位元素:…

Transformer升级之路:一种全局长度外推的新思路

©PaperWeekly 原创 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP、神经网络 说到 Transformer 无法处理超长序列的原因,大家的第一反应通常都是 Self Attention 的二次复杂度。但事实上,即便忽略算力限制,常规的 Transformer 也无法处…

女子称怀孕4个月被老公多次家暴,家可是一个人最温暖的港湾

家庭是一个人最温暖的港湾,应该是一个充满爱、和谐和尊重的地方。 近日,江西景德镇一女子发视频爆料自己怀孕4个月遭到老公家暴。视频中,男子对女子拽头发、用脚踢踹,引起了广泛关注和谴责。 据当事女子表示,这并不是第…

【Rust日报】2023-05-27 Diesel 2.1

Diesel 2.1 我很高兴宣布diesel 2.1,Diesel是一个用Rust构建的安全,可扩展的 ORM 和Query Builder。 此版本包含几个新特性并改进了现有特性。 文章链接,https://diesel.rs/news/2_1_0_release.html Github 链接,https://github.c…

多语言电商系统_国际化电商系统流程

跨境电商系统是基于计算机技术和互联网平台的一种电子商务系统。它通常包括前端电商网站或应用程序、后台管理系统、物流管理系统、支付系统等多个模块,可以通过网络实现商品展示、订单管理、支付结算、物流配送等电商流程的自动化处理。 跨境电商系统基本流程包括…

Jenkins+Gogs自动远程Docker环境部署django项目

1.Jenkins安装或确认必要插件 jenkins安装或确认必要插件gitlab、Publish Over SSH。 Dashboard--Manage Jenkins--Plugin Manager 2.Publish Over SSH配置 jenkins配置SSH连接django服务部署的对象服务器 Dashboard--Manage Jenkins--Configure System,找到 Publ…