LSB(Linux Standard Base)通用部分学习自用(1)

2023-05-16

前言

什么是LSB(借用了这位博主的高见)
LSB文档下载
自用,如有错误请指出,不胜感激
本系列基于LSB-Core-Generic 5.0

介绍

The LSB defines a binary interface for application programs that are compiled and packaged for LSB-conforming implementations on many different hardware architectures. A binary specification must include information specific to the computer processor architecture for which it is intended. To avoid the complexity of conditional descriptions, the specification has instead been divided into generic parts which are augmented by one of several architecture-specific parts, depending on the target processor architecture; the generic part will indicate when reference must be made to the architecture part, and vice versa.

LSB为应用程序定义了二进制接口用于在不同的硬件平台上编译和打包出符合LSB的程序, 因此必须定义二进制规范来包含未来将要运行的计算机硬件平台的信息。 为了防止描述条件太复杂,我们根据目标处理器体系结构,划分出通用部分。 通用部分将指示何时必须引用体系结构部分,反之亦然。

This document should be used in conjunction with the documents it references. This document enumerates the system components it includes, but descriptions of those components may be included entirely or partly in this document, partly in other documents, or entirely in other reference documents. For example, the section that describes system service routines includes a list of the system routines supported in this interface, formal declarations of the data structures they use that are visible to applications, and a pointer to the underlying referenced specification for information about the syntax and semantics of each call. Only those routines not described in standards referenced by this document, or extensions to those standards, are described in the detail. Information referenced in this way is as much a part of this document as is the information explicitly included here.

该文档应与其引用的文档一起使用。 本文档列举了它包含的系统组件,但是这些组件的描述可能全部或部分包含在本文档中,部分包含在其他文档中,或完全包含在其他参考文档中。(应该指的是官网上的其他文档)

The specification carries a version number of either the form x.y or x.y.z. This version number carries the following meaning:

  1. The first number (x) is the major version number. Versions sharing the same
    major version number shall be compatible in a backwards direction; that is, a
    newer version shall be compatible with an older version. Any deletion of a library results in a new major version number. Interfaces marked as deprecated may be removed from the specification at a major version change.
  2. The second number (y) is the minor version number. Libraries and individual
    interfaces may be added, but not removed. Interfaces may be marked as
    deprecated at a minor version change. Other minor changes may be permitted at the discretion of the LSB workgroup.
  3. The third number (z), if present, is the editorial level. Only editorial changes
    should be included in such versions.
    Since this specification is a descriptive Application Binary Interface, and not a source level API specification, it is not possible to make a guarantee of 100% backward compatibility between major releases. However, it is the intent that those parts of the binary interface that are visible in the source level API will remain backward compatible from version to version, except where a feature marked as “Deprecated” in one release may be removed from a future release. Implementors are strongly encouraged to make use of symbol versioning to permit simultaneous support of applications conforming to different releases of this specification.
    LSB is a trademark of the Linux Foundation. Developers of applications or implementations interested in using the trademark should see the Linux Foundation Certification
    Policy for details.

这一段在讲解版本号命名规则,就不看了

关于LSB通用部分及其大致范围

The Linux Standard Base (LSB) defines a system interface for compiled applications and a minimal environment for support of installation scripts. Its purpose is to enable a uniform industry standard environment for high-volume applications conforming to the LSB.
These specifications are composed of two basic parts: a common part describing those parts of the interface that remain constant across all implementations of the LSB, and an architecture-specific part describing the parts of the interface that vary by processor architecture. Together, the common part and the relevant architecture-specific part for a single hardware architecture provide a complete interface specification for compiled application programs on systems that share a common hardware architecture.
The LSB contains both a set of Application Program Interfaces (APIs) and Application Binary Interfaces (ABIs). APIs may appear in the source code of portable applications, while the compiled binary of that application may use the larger set of ABIs. A conforming implementation provides all of the ABIs listed here. The compilation system may replace (e.g. by macro definition) certain APIs with calls to one or more of the underlying binary interfaces, and may insert calls to binary interfaces as needed.
The LSB is primarily a binary interface definition. Not all of the source level APIs available to applications may be contained in this specification.

LSB定义了系统接口和用于支持安装脚本的最简环境。其目的是为在LSB标准下运行的应用程序提供统一环境。
这些规范由两个基本部分组成:一个通用部分描述了接口的那些部分,这些部分在LSB的所有实现中保持不变;而特定于体系结构的部分描述了该接口的各个部分,这些部分随处理器体系结构的不同而变化。单个硬件体系结构的公共部分和相关体系结构特定部分一起为公共硬件体系结构的系统上提供了完整的接口规范。
LSB包含一组应用程序接口(API)和应用程序二进制接口(ABI)。 API可能会出现在可移植源代码中,而已编译二进制应用程序可能会使用更大的ABI集。编译系统可以通过对一个或多个ABI的调用来替换某些API,并且可以根据需要插入对ABI的调用。LSB主要是二进制接口定义。并非所有可供应用程序使用的源代码级API都包含在此规范中。

This is the common part of the Core module of the Linux Standard Base (LSB), LSB Core - Generic. This module provides the fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries depend.
LSB Core - Generic, the common part, should be used in conjunction with an architecture-specific part. Whenever a section of the common part is supplemented by architecture-specific information, the common part includes a reference to the architecture-specific part. Architecture-specific parts of the LSB Core Specification may also contain additional information that is not referenced in the common part.
Interfaces described in this part of the LSB Core Specification are mandatory except where explicitly listed otherwise. Interfaces described in the LSB Core module are supplemented by other LSB modules. All other modules depend on the presence of LSB Core.

这是LSB Core模块的通用部分, 该模块提供了应用程序和库所依赖的基本系统接口,库和运行时环境。
LSB Core-Generic,既LSB通用部分,应与特定的体系结构的部分结合使用。 每当通用部分中补充有特定于体系结构的信息时,公用部分都引用包含对特定于体系结构。 LSB核心规范中用于指定特定体系结构的部分可能还包含公共部分中未引用的其他信息。(不太清楚这个可能未引用的信息指的是什么,可能我理解的有问题,懂的朋友可以指点一下我)
LSB核心规范描述的接口是强制性的(应该指的是ABI的实现),除非另有明确列出。 LSB核心模块中描述的接口由其他LSB模块补充。 所有其他模块取决于LSB Core的存在。

最后总结一下

本人菜鸡,第一次尝试翻译文档,基础也很薄弱,主要是学习用途,半夜打发时间和早上醒神用的,请大家见谅(估计也没啥人看)

参考网站
Linux基金会参考文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LSB(Linux Standard Base)通用部分学习自用(1) 的相关文章

  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • C:如果文件描述符被删除,阻塞读取应该返回

    我正在以阻塞的方式从设备 文件描述符中读取 可能会发生这样的情况 在不同的线程中 设备被关闭并且文件描述符被删除 不幸的是 读取没有返回或注意到并且一直阻塞 作为一种解决方法 我可以使用 select 作为超时来执行 while 循环 如果
  • 配置:错误:无法运行C编译的程序

    我正在尝试使用 Debian Wheezy 操作系统在我的 Raspberry Pi 上安装不同的软件 当我运行尝试配置软件时 我尝试安装我得到此输出 checking for C compiler default output file
  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU

随机推荐

  • (一)ADRC自抗扰控制-各部分简介与仿真

    前言 简单的说 xff0c ADRC可以理解为PID增强版 xff0c 主要由ESO xff08 扩展状态观测器 xff09 非线性 xff08 或线性 xff09 控制器 TD xff08 跟踪微分器 xff09 组成 xff0c 其灵魂
  • python—遍历文件夹下所有的图片(或其他文件)

    span class token triple quoted string string 34 34 34 日期 xff1a 2021年01月26日 34 34 34 span span class token keyword import
  • Python—给图片加椒盐噪声(包含读取写入图片)

    span class token comment 2021年1月27日 span span class token keyword import span glob span class token keyword import span
  • python cv2

    函数 xff1a cv2 threshold 这个函数有四个参数 xff0c 第一个原图像 xff0c 必须是单通道 第二个进行分类的阈值 xff0c 第三个是高于 xff08 低于 xff09 阈值时赋予的新值 xff0c 第四个是一个方
  • 信息量与交叉熵损失的关系

    目录 1 信息量 2 信息熵 3 相对熵 xff08 KL散度 xff09 4 交叉熵 xff08 cross entropy xff09 5 二值交叉熵 xff08 binary cross entropy xff09 在机器学习领域 x
  • 树莓派镜像系统—兼容3B、3B+、4B,已编译opencv

    树莓派镜像系统 xff08 转载 xff09 这个镜像是基于树莓派官方raspios buster arm64桌面版镜像制作 xff0c 内核版本为5 4 72 xff0c OpenCV版本为4 5 0 xff0c 默认开启ssh和vnc
  • python遇到的语法问题

    python什么时候加self xff0c 什么时候不加self self代表对象本身 xff0c 换个思维应该认为self是全局变量 xff0c 如果变量前面加了self xff0c 那么在任何实例方法 xff08 非staticmeth
  • python Jetson tx2和 stm32之间的通信(16进制和10进制的转换,包括负数),BCC校验(异或)运算

    tx2接收16进制数据 含16进制转化为10进制 xff0c 负数怎么表示 我发现tx2接收stm32的16进制的数据 xff0c 不能达到我想要的效果 并且16进制数还会转换成ASCLL码的字符 如下图 xff1a 通过如下操作可以获得字
  • ROS 学习记录(五)

    在运行moveit xff01 例程的时候发现没有Moveit包 xff0c 于是在网上下载 xff0c 发现普通的 sudo apt get install ros kinetic moveit 无法完成安装 会提示找不到安装包 尝试更换
  • rosbag使用介绍

    rosbag 1 录制包 span class token comment 录制所有的topic span rosbag record span class token operator span a 2 查看包的信息 rosbag inf
  • Python基础

    输出函数print 输出内容可以是 1 数字 print 66 6 2 字符串 print hello world 单引号双引号都可 3 含有运算符的表达式 print 3 43 1 4 输出到文件中 fp 61 open D text t
  • PID控制器的优缺点和周期

    PID控制器参数优缺点 PID控制器简介 PID控制器是非常经典的一种控制算法 xff0c 是不需要知道系统的模型 xff0c 仅仅根据期望与现状的偏差调节 xff0c 使之能够到达期望的一种线性控制器 优点 xff1a 使用简单 xff0
  • 嵌入式开发自救指南(嵌入式怎么高薪基本思路)

    文章目录 前言打工的基本逻辑 xff1a 生产者思维价值与价格概念介绍需求与价值供给与价值 总结 一 为什么选择嵌入式四个角度个人需求现有资源与长板职业优先级排序 二 距离目标还有多远距离目标距离 三 路线半年路线为什么这样做 前言 为什么
  • docker安装firefox

    下载镜像 docker pull jlesage firefox 运行容器 docker run d name 61 firefox e TZ 61 Asia Hong Kong p 5800 5800 p 5900 5900 shm si
  • freertos学习之路1-裸机和rtos的区别

    写在最前 由于工作需要 xff0c 需要开始学习freertos的相关知识 xff0c 本专题主要记录freertos的相关内容 参考 xff1a https www bilibili com video BV19g411p7UT 正点原子
  • Windows10 配置 VSCode 的 C++环境

    目录 0 不同符号代表的 CPU 的位数 xff1a 1 下载 MinGW64 包 xff0c 配置C C 43 43 的Windows环境 2 在 VSCode 里配置 C 43 43 0 不同符号代表的 CPU 的位数 xff1a x8
  • MPU MCU CPU GPU之间的关系

    CPU xff08 Central Processing Unit xff0c 中央处理器 是计算机系统的主要处理器 xff0c 它负责执行指令 处理数据和控制计算机系统的操作 CPU通常被用于通用计算和控制任务 xff0c 如桌面电脑 服
  • stm32外设-中断详解

    0 写在最前 本栏目笔记都是基于stm32F10x 1 中断是啥 xff1f 什么是中断 xff1a CPU在处理某一事件A时 xff0c 发生的另外某一事件B请求CPU去处理 xff08 产生了中断 xff09 xff0c 随后CPU暂时
  • Darknet——yolo3训练自己的数据集+在ros环境下实现目标检测实战教程(三)——应用在ROS上

    文章目录 前言一 darknet ros代码简析二 修改ros驱动包的文件内容三 ros系统下运行效果总结 前言 Darknet yolo3训练自己的数据集 43 在ros环境下实现目标检测实战教程 xff08 一 xff09 环境配置 D
  • LSB(Linux Standard Base)通用部分学习自用(1)

    前言 什么是LSB xff08 借用了这位博主的高见 xff09 LSB文档下载 自用 xff0c 如有错误请指出 xff0c 不胜感激 本系列基于LSB Core Generic 5 0 介绍 The LSB defines a bina