Linux Standard Base (LSB) - Part 1-1: Common definitions

This document 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. The LSB specification set is divided into modules, each of which provides fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries using that module depend. The modules of the Linux Standard Base are: LSB Core - core components LSB Desktop - desktop related components LSB Languages - runtime languages LSB Imaging - printing and scanning LSB Trial Use - components that are not yet mandatory Interfaces described in the LSB Core module specification are supplemented by other LSB module specifications. All other modules depend on the presence of LSB Core. 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. 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 of an LSB module specification may also contain additional information that is not referenced in the common part. 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.

Noyau de base normalisé Linux (LSB) — Partie 1-1: Définitions communes

General Information

Status
Published
Publication Date
07-Oct-2021
Current Stage
6060 - International Standard published
Start Date
08-Oct-2021
Due Date
09-Nov-2021
Completion Date
08-Oct-2021

Relations

Effective Date
23-Apr-2020

Overview

ISO/IEC 23360-1-1:2021 specifies the Linux Standard Base (LSB) - Part 1-1: Common definitions. It defines a portable system interface for compiled applications and a minimal runtime environment for installation scripts to enable a uniform industry standard for high‑volume Linux applications. The standard is primarily a binary interface (ABI) definition augmented by API-level information where relevant, and it splits each module into a common part and an architecture‑specific part to cover processor differences.

Key topics and requirements

  • Modular structure: LSB modules include LSB Core, LSB Desktop, LSB Languages, LSB Imaging and LSB Trial Use. All modules depend on LSB Core.
  • Common + architecture-specific parts: The specification separates architecture‑independent definitions from processor‑specific details; together they form a complete interface for a given hardware architecture.
  • APIs and ABIs: The standard enumerates both Application Program Interfaces (APIs) and Application Binary Interfaces (ABIs). It is primarily an ABI specification - compiled binaries must conform to the ABIs listed.
  • Required libraries and runtime names: The Core and other modules define mandatory libraries (e.g., libpthread.so.0, libstdc++.so.6, libz.so.1) and architecture‑specific libraries like libc and libm.
  • Required commands/utilities: The Core module lists many required commands (e.g., cp, mv, ls, sh, sed, grep), while Desktop, Imaging and Languages modules add others (e.g., xdg‑open, foomatic‑rip, python, perl).
  • Conformance rules: A conforming implementation must provide the interfaces from both the common and applicable architecture part, supply dynamic linking of required libraries, conform to virtual memory and calling conventions, and report module support (e.g., via the lsb_release command). Optional interfaces may be supplied but must be complete if provided.
  • Versioning policy: Version numbers use x.y(.z) semantics where major changes may remove libraries, minor changes add interfaces, and editorial changes use the third level.

Applications and users

  • Software vendors and ISVs building commercial, high‑volume Linux desktop/server applications use the LSB to maximize binary portability across distributions and processor architectures.
  • Linux distribution maintainers and system integrators use it to ensure runtime compatibility and to certify conformance.
  • Toolchain and library developers (compilers, linkers, packaging systems) use the ABI and library/runtime name rules to produce compatible binaries.
  • Enterprise IT benefits from predictable behaviour of installed binaries and installation scripts across heterogeneous Linux environments.

Related standards

  • The LSB references POSIX (ISO/IEC 9945) and other Linux Foundation specifications where appropriate; sections indicate when readers must consult architecture‑specific parts or referenced standards for full semantics.

Keywords: ISO/IEC 23360-1-1, Linux Standard Base, LSB, ABI, API, LSB Core, library names, conformance, runtime environment, lsb_release.

Standard

ISO/IEC 23360-1-1:2021 - Linux Standard Base (LSB) — Part 1-1: Common definitions Released:10/8/2021

English language
12 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 23360-1-1:2021 is a standard published by the International Organization for Standardization (ISO). Its full title is "Linux Standard Base (LSB) - Part 1-1: Common definitions". This standard covers: This document 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. The LSB specification set is divided into modules, each of which provides fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries using that module depend. The modules of the Linux Standard Base are: LSB Core - core components LSB Desktop - desktop related components LSB Languages - runtime languages LSB Imaging - printing and scanning LSB Trial Use - components that are not yet mandatory Interfaces described in the LSB Core module specification are supplemented by other LSB module specifications. All other modules depend on the presence of LSB Core. 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. 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 of an LSB module specification may also contain additional information that is not referenced in the common part. 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.

This document 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. The LSB specification set is divided into modules, each of which provides fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries using that module depend. The modules of the Linux Standard Base are: LSB Core - core components LSB Desktop - desktop related components LSB Languages - runtime languages LSB Imaging - printing and scanning LSB Trial Use - components that are not yet mandatory Interfaces described in the LSB Core module specification are supplemented by other LSB module specifications. All other modules depend on the presence of LSB Core. 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. 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 of an LSB module specification may also contain additional information that is not referenced in the common part. 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.

ISO/IEC 23360-1-1:2021 is classified under the following ICS (International Classification for Standards) categories: 35.080 - Software. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 23360-1-1:2021 has the following relationships with other standards: It is inter standard links to ISO/IEC 23360-1:2006. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

ISO/IEC 23360-1-1:2021 is available in PDF format for immediate download after purchase. The document can be added to your cart and obtained through the secure checkout process. Digital delivery ensures instant access to the complete standard document.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 23360-1-1
First edition
2021-10
Linux Standard Base (LSB) —
Part 1-1:
Common definitions
Reference number
©
ISO/IEC 2021
© ISO/IEC 2021
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address
below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2021 – All rights reserved

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are
members of ISO or IEC participate in the development of International Standards through technical
committees established by the respective organization to deal with particular fields of technical activity.
ISO and IEC technical committees collaborate in fields of mutual interest. Other international
organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the
work.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the
different types of document should be noted (see www.iso.org/directives or
www.iec.ch/members_experts/refdocs).
Attention is drawn to the possibility that some of the elements of this document may be the subject of
patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details
of any patent rights identified during the development of the document will be in the Introduction and/or
on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent
declarations received (see patents.iec.ch).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the World
Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT),
see www.iso.org/iso/foreword.html. In the IEC, see www.iec.ch/understanding-standards.
This document was prepared by the Linux Foundation as Linux Standard Base (LSB): Common
Definitions and drafted in accordance with its editorial rules. It was assigned to Joint Technical
Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their
environments and system software interfaces, and adopted by National Bodies.
This first edition of ISO/IEC 23360-1-1 cancels and replaces ISO/IEC 23360-1:2006, which has been
technically revised.
This document is based on “The GNU Free Documentation License, version 1.1”. The license is available
at https://www.gnu.org/licenses/old-licenses/fdl-1.1.html.
A list of all parts in the ISO/IEC 23660 series can be found on the ISO and IEC websites.
Any feedback or questions on this document should be directed to the user’s national standards body. A
complete listing of these bodies can be found at www.iso.org/members.html and www.iec.ch/national-
committees.
© ISO/IEC 2021 – All rights reserved iii

Contents
Foreword . iii
Introduction . .v
1 Scope . 1
2 Requirements . 2
2.1 Relevant Libraries . 2
2.2 Relevant Commands . 4
2.3 LSB Implementation Conformance. 5
2.4 LSB Application Conformance . 6
3 Terms and Definitions . 8
4 Documentation Conventions . 10
5 Relationship To ISO/IEC 9945 POSIX . 11
6 Relationship To Other Linux Foundation Specifications . 12
iv © 2021 ISO/IEC – All rights reserved

Introduction
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.
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.
v
© 2021 ISO/IEC – All rights reserved

1 Scope
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.
The LSB specification set is divided into modules, each of which provides
fundamental system interfaces, libraries, and runtime environment upon which
all conforming applications and libraries using that module depend.
The modules of the Linux Standard Base are:
• LSB Core - core components
• LSB Desktop - desktop related components
• LSB Languages - runtime languages
• LSB Imaging - printing and scanning
• LSB Trial Use - components that are not yet mandatory
Interfaces described in the LSB Core module specification are supplemented by
other LSB module specifications. All other modules depend on the presence of
LSB Core.
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. 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 of an LSB
module specification may also contain additional information that is not
referenced in the common part.
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.
© 2021 ISO/IEC – All rights reserved 1

2 Requirements
2.1 Relevant Libraries
The libraries listed in the following tables shall be available on a Linux Standard
Base system, with the specified runtime names. The libraries listed in Table 2-2
are architecture specific, but shall be available on all LSB conforming systems
under a name specified in each Architecture Specific Part of the LSB Core module.
Table 2-1 LSB Core Module Library Names
Library Runtime Name
libcrypt libcrypt.so.1
libdl libdl.so.2
libgcc_s libgcc_s.so.1
libncurses libncurses.so.5
libncursesw libncursesw.so.5
libnspr4 libnspr4.so
libnss3 libnss3.so
libpam libpam.so.0
libpthread libpthread.so.0
librt librt.so.1
libssl3 libssl3.so
libstdcxx libstdc++.so.6
libutil libutil.so.1
libz libz.so.1
Table 2-2 LSB Core Module Library Names which vary by architecture
Library Runtime Name
libc See architecture specific part.
libm See architecture specific part.
proginterp See architecture specific part.

Table 2-3 LSB Desktop Module Library Names
Library Runtime Name
libGL libGL.so.1
libGLU libGLU.so.1
libICE libICE.so.6
libQtCore libQtCore.so.4
libQtGui libQtGui.so.4
2 © 2021 ISO/IEC – All rights reserved

Library Runtime Name
libQtNetwork libQtNetwork.so.4
libQtOpenGL libQtOpenGL.so.4
libQtSql libQtSql.so.4
libQtSvg libQtSvg.so.4
libQtXml libQtXml.so.4
libSM libSM.so.6
libX11 libX11.so.6
libXext libXext.so.6
libXft libXft.so.2
libXi libXi.so.6
libXrender libXrender.so.1
libXt libXt.so.6
libXtst libXtst.so.6
libasound libasound.so.2
libatk-1.0 libatk-1.0.so.0
libcairo libcairo.so.2
libcairo-gobject libcairo-gobject.so.2
libcairo-script-interpreter libcairo-script-interpreter.so.2
libfontconfig libfontconfig.so.1
libfreetype libfreetype.so.6
libgdk-x11-2.0 libgdk-x11-2.0.so.0
libgdk_pixbuf-2.0 libgdk_pixbuf-2.0.so.0
libgdk_pixbuf_xlib-2.0 libgdk_pixbuf_xlib-2.0.so.0
libgio-2.0 libgio-2.0.so.0
libglib-2.0 libglib-2.0.so.0
libgmodule-2.0 libgmodule-2.0.so.0
libgobject-2.0 libgobject-2.0.so.0
libgthread-2.0 libgthread-2.0.so.0
libgtk-x11-2.0 libgtk-x11-2.0.so.0
libjpeg libjpeg.so.62
libpango-1.0 libpango-1.0.so.0
libpangocairo-1.0 libpangocairo-1.0.so.0
libpangoft2-1.0 libpangoft2-1.0.so.0
© 2021 ISO/IEC – All rights reserved 3

Library Runtime Name
libpangoxft-1.0 libpangoxft-1.0.so.0
libpng12 libpng12.so.0
libtiff libtiff.so.5
libxcb libxcb.so.1
Table 2-4 LSB Imaging Module Library
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...