ISO/IEC 23360-1-2:2021
(Main)Linux Standard Base (LSB) - Part 1-2: Core specification generic part
Linux Standard Base (LSB) - Part 1-2: Core specification generic part
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. 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. 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.
Noyau de base normalisé Linux (LSB) — Partie 1-2: Partie générique de la spécification du module de base "Core"
General Information
- Status
- Published
- Publication Date
- 07-Oct-2021
- Technical Committee
- ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces
- Drafting Committee
- ISO/IEC JTC 1/SC 22/WG 24 - Linux
- Current Stage
- 6060 - International Standard published
- Start Date
- 08-Oct-2021
- Due Date
- 11-Sep-2021
- Completion Date
- 08-Oct-2021
Relations
- Effective Date
- 23-Apr-2020
Overview
ISO/IEC 23360-1-2:2021 - Linux Standard Base (LSB) Part 1-2: Core specification (generic part) defines the common system interface and a minimal runtime/installer environment for compiled Linux applications. Its goal is to enable a uniform, industry-standard environment (APIs and ABIs) so high-volume and commercial applications can run reliably across conforming Linux distributions. This document is the generic (architecture‑independent) half of the LSB Core module and is intended to be used together with the relevant architecture‑specific part to form a complete interface specification.
Key topics and technical requirements
- APIs and ABIs: Specifies which source-level APIs and binary ABIs are required for conformance; the LSB is primarily a binary interface definition.
- Executable and Linking Format (ELF): Low‑level object format rules, sections, symbol mapping, DWARF extensions, exception frames and symbol versioning.
- Dynamic linking & program loading: Program interpreter, program header and required dynamic entries.
- Base libraries: Mandatory interfaces and data definitions for libc, libm, libpthread, libgcc_s, libdl, librt, libcrypt, libpam and other core libraries.
- Utility & C++ libraries: Requirements for common utility libraries (libz, libncurses, libutil) and libstdc++.
- Commands, utilities and execution environment: Standardized behavior for common utilities, file system hierarchy (/dev, /etc), system initialization behaviors and path expectations for admin tools.
- Localization & patterns: Regular expressions, pattern matching and localization considerations.
- Conformance rules: Definitions for LSB implementation conformance and LSB application conformance; interfaces are mandatory except where explicitly noted.
- Relationship to POSIX and other specs: Aligns with ISO/IEC 9945 (POSIX) and references other Linux Foundation and POSIX resources.
Practical applications
- Build and distribute binary-compatible applications that run across multiple Linux distributions without recompilation.
- Establish a stable runtime for installers and packaging systems to ensure predictable behavior of installation scripts.
- Support commercial ISVs, independent software vendors and large-scale application vendors who need a consistent ABI.
- Provide a target for distribution maintainers and system integrators to verify compatibility and interoperability.
- Enable conformance testing suites and QA processes to certify systems or applications against the LSB Core.
Who should use this standard
- Application developers and packagers targeting binary portability
- Independent software vendors (ISVs) and enterprise software teams
- Linux distribution maintainers and platform engineers
- Systems integrators and QA/test teams performing compatibility verification
Related standards
- ISO/IEC 9945 (POSIX) - for POSIX interfaces and compatibility considerations
- Architecture-specific parts of the LSB Core - required in combination with this generic part
- Other Linux Foundation specifications referenced by the LSB
Keywords: Linux Standard Base, LSB, ISO/IEC 23360-1-2, ABI, API, ELF, libc, libstdc++, dynamic linking, binary compatibility, Linux portability.
Frequently Asked Questions
ISO/IEC 23360-1-2:2021 is a standard published by the International Organization for Standardization (ISO). Its full title is "Linux Standard Base (LSB) - Part 1-2: Core specification generic part". 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. 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. 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.
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. 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. 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.
ISO/IEC 23360-1-2: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-2: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-2: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-2
First edition
2021-10
Linux Standard Base (LSB) —
Part 1-2:
Core specification generic part
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): Core specification
generic part 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-2 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 . vii
I Introductory Elements . 1
1 Scope . 2
2 References . 3
2.1 Normative References . 3
2.2 Informative References/Bibliography. 5
3 Requirements . 8
3.1 Relevant Libraries . 8
3.2 LSB Implementation Conformance. 8
3.3 LSB Application Conformance . 10
4 Terms and Definitions . 11
5 Documentation Conventions . 13
6 Relationship To ISO/IEC 9945 POSIX . 14
7 Relationship To Other Linux Foundation Specifications . 15
II Executable And Linking Format (ELF) . 16
8 Introduction . 17
9 Low Level System Information . 18
9.1 Operating System Interface . 18
9.2 Machine Interface . 18
10 Object Format . 19
10.1 Object Files . 19
10.2 Sections . 19
10.3 Special Sections . 23
10.4 Symbol Mapping . 29
10.5 DWARF Extensions . 29
10.6 Exception Frames . 31
10.7 Symbol Versioning . 36
10.8 ABI note tag . 40
11 Dynamic Linking . 41
11.1 Program Loading and Dynamic Linking . 41
11.2 Program Header . 41
11.3 Dynamic Entries . 41
12 C++ Class Representations . 46
12.1 C++ Data Representation. 46
13 Symbol Mapping . 50
13.1 Symbol Mapping . 50
III Base Libraries . 51
14 Base Libraries . 52
14.1 Introduction . 52
14.2 Program Interpreter . 52
14.3 Interfaces for libc . 52
14.4 Data Definitions for libc . 73
14.5 Interface Definitions for libc . 180
14.6 Interfaces for libm . 393
14.7 Data Definitions for libm . 397
14.8 Interface Definitions for libm . 403
14.9 Interfaces for libpthread . 428
14.10 Data Definitions for libpthread . 434
14.11 Interface Definitions for libpthread . 439
iv © 2021 ISO/IEC – All rights reserved
14.12 Interfaces for libgcc_s . 444
14.13 Data Definitions for libgcc_s . 445
14.14 Interface Definitions for libgcc_s . 446
14.15 Interfaces for libdl . 452
14.16 Data Definitions for libdl. 453
14.17 Interface Definitions for libdl . 454
14.18 Interfaces for librt . 457
14.19 Data Definitions for librt . 459
14.20 Interfaces for libcrypt . 461
14.21 Data Definitions for libcrypt. 462
14.22 Interface Definitions for libcrypt . 462
14.23 Interfaces for libpam . 464
14.24 Data Definitions for libpam . 465
14.25 Interface Definitions for libpam . 467
IV Utility Libraries . 481
15 Utility Libraries . 482
15.1 Introduction . 482
15.2 Interfaces for libz . 482
15.3 Data Definitions for libz . 483
15.4 Interface Definitions for libz . 486
15.5 Interfaces for libncurses . 533
15.6 Data Definitions for libncurses . 538
15.7 Interface Definitions for libncurses . 546
15.8 Interfaces for libncursesw . 554
15.9 Data Definitions for libncursesw . 560
15.10 Interface Definitions for libncursesw . 587
15.11 Interfaces for libutil . 587
15.12 Data Definitions for libutil . 588
15.13 Interface Definitions for libutil . 588
V C++ Libraries . 594
16 Libraries . 595
16.1 Interfaces for libstdcxx . 595
16.2 Interface Definitions for libstdcxx . 850
VI Commands and Utilities . 851
17 Commands and Utilities . 852
17.1 Commands and Utilities . 852
17.2 Command Behavior . 853
VII Execution Environment . 917
18 File System Hierarchy . 918
18.1 /dev: Device Files . 918
18.2 /etc: Host-specific system configuration . 918
18.3 User Accounting Databases . 920
18.4 Path For System Administration Utilities . 920
19 Additional Recommendations . 921
19.1 Recommendations for applications on ownership and permissions . 921
20 Additional Behaviors . 923
20.1 Mandatory Optional Behaviors. 923
20.2 Optional Mandatory Behaviors. 924
20.3 Executable Scripts . 924
21 Localization . 926
21.1 Introduction . 926
© 2021 ISO/IEC – All rights reserved v
21.2 Regular Expressions . 926
21.3 Pattern Matching Notation . 926
VIII System Initialization . 928
22 System Initialization . 929
22.1 Cron Jobs . 929
22.2 Init Script Actions . 930
22.3 Comment Conventions for Init Scripts . 932
22.4 Installation and Removal of Init Scripts. 934
22.5 Run Levels . 935
22.6 Facility Names . 935
22.7 Script Names . 936
22.8 Init Script Functions . 936
IX Users & Groups . 939
23 Users & Groups . 940
23.1 User and Group Database . 940
23.2 User & Group Names . 940
23.3 User ID Ranges . 941
23.4 Rationale . 941
X Network Security Services . 942
24 Libraries . 943
24.1 Interfaces for libnspr4 . 943
24.2 Data Definitions for libnspr4 . 945
24.3 Interfaces for libnss3 . 955
24.4 Data Definitions for libnss3 . 956
24.5 Interfaces for libssl3 . 979
24.6 Data Definitions for libssl3 . 980
XI Package Format and Installation . 990
25 Software Installation . 991
25.1 Introduction . 991
25.2 Package File Format . 991
25.3 Package Script Restrictions . 1011
25.4 Package Tools . 1011
25.5 Package Naming Conventions . 1011
25.6 Package Dependencies . 1012
25.7 Package Architecture Considerations . 1013
Annex A Alphabetical Listing of Interfaces by Library . 1014
A.1 libc . 1014
A.2 libcrypt . 1029
A.3 libdl . 1029
A.4 libgcc_s . 1029
A.5 libm . 1029
A.6 libncurses . 1033
A.7 libncursesw . 1036
A.8 libpam . 1043
A.9 libpthread . 1043
A.10 librt . 1047
A.11 libutil . 1047
A.12 libz . 1048
A.13 libnspr4 . 1049
A.14 libnss3 . 1050
A.15 libssl3 . 1051
vi © 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.
vii © 2021 ISO/IEC – All rights reserved
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.
viii
© 2021 ISO/IEC – All rights reserved
I Introductory Elements
© 2021 ISO/IEC – All rights reserved 1
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.
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.
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.
2 © 2021 ISO/IEC – All rights reserved
2 References
2.1 Normative References
The following specifications are incorporated by reference into this specification.
For dated references, only the edition cited applies. For undated references, the
latest edition of the referenced specification (including any amendments) applies.
Note: Where copies of a referenced specification are available on the World Wide
Web, a Uniform Resource Locator (URL) is given, for informative purposes only.
Such URL might at any given time resolve to a more recent copy of the specification,
or be out of date (not resolve). Reference copies of specifications at the revision level
indicated may be found at the Linux Foundation's Reference Specifications
(http://refspecs.linuxbase.org) site.
Table 2-1 Normative References
Name Title URL
Filesystem Hierarchy Filesystem Hierarchy http://refspecs.linuxbas
Standard Standard (FHS) 3.0 e.org/fhs
ISO C (1999) ISO/IEC 9899:1999 -
Programming
Languages -- C
ISO/IEC 14882: 2003 ISO/IEC 14882: 2003
C++ Language Programming
languages --C++
Itanium™ C++ ABI Itanium™ C++ ABI http://refspecs.linuxfou
(Revision 1.86) ndation.org/cxxabi-
1.86.html
Large File Support Large File Support http://www.UNIX-
systems.org/version2/w
hatsnew/lfs20mar.html
Libncursesw API Libncursesw API http://invisible-
island.net/ncurses/man/
ncurses.3x.html
Libncursesw Libncursesw http://refspecs.linux-
Placeholder Specification foundation.org/libncurs
Placeholder esw/libncurses.html
POSIX 1003.1-2001 http://www.unix.org/ve
ISO/IEC 9945-1:2003
(ISO/IEC 9945-2003) rsion3/
Information technology
-- Portable Operating
System Interface
(POSIX) -- Part 1: Base
Definitions
ISO/IEC 9945-2:2003
Information technology
-- Portable Operating
System Interface
© 2021 ISO/IEC – All rights reserved 3
Name Title URL
(POSIX) -- Part 2:
System Interfaces
ISO/IEC 9945-3:2003
Information technology
-- Portable Operating
System Interface
(POSIX) -- Part 3: Shell
and Utilities
ISO/IEC 9945-4:2003
Information technology
-- Portable Operating
System Interface
(POSIX) -- Part 4:
Rationale
Including Technical
Cor. 1: 2004
POSIX 1003.1-2008 Portable Operating http://www.unix.org/ve
(ISO/IEC 9945-2009) System Interface rsion4/
(POSIX®) 2008 Edition /
The Open Group
Technical Standard
Base Specifications,
Issue 7
SUSv2 CAE Specification, http://www.opengroup.
January 1997, System org/publications/catalo
Interfaces and Headers g/un.htm
(XSH),Issue 5 (ISBN: 1-
85912-181-0, C606)
SVID Issue 3 American Telephone
and Telegraph
Company, System V
Interface Definition,
Issue 3; Morristown, NJ,
UNIX Press, 1989.
(ISBN 0201566524)
SVID Issue 4 System V Interface http://refspecs.linuxfou
Definition, Fourth ndation.org/svid4/
Edition
System V ABI System V Application http://www.sco.com/de
Binary Interface, velopers/devspecs/gabi
Edition 4.1 41.pdf
System V ABI Update System V Application http://www.sco.com/de
Binary Interface - velopers/gabi/2003-12-
17/contents.html
4 © 2021 ISO/IEC – All rights reserved
Name Title URL
DRAFT - 17 December
X/Open Curses, Issue 7 X/Open Curses, Issue 7 https://www2.opengrou
(ISBN: 1-931624-83-6, p.org/ogsys/catalog/C09
The Open Group, 4
November 2009)
2.2 Informative References/Bibliography
The documents listed below provide essential background information to
implementors of this specification. These references are included for information
only, and do not represent normative parts of this specification.
Table 2-2 Other References
Name Title URL
DWARF Debugging DWARF Debugging http://www.dwarfstd.or
Information Format, Information Format, g/doc/DWARF4.pdf
Version 4 Version 4 (June 10,
2010)
IEC 60559/IEEE 754 IEC 60559:1989 Binary http://www.ieee.org/
Floating Point floating-point
arithmetic for
microprocessor systems
ISO/IEC TR14652 ISO/IEC Technical
Report 14652:2002
Specification method
for cultural conventions
ITU-T V.42 International http://www.itu.int/rec/r
Telecommunication ecommendation.asp?ty
Union pe=folders&lang=e&par
Recommendation V.42 ent=T-REC-V.42
(2002): Error-correcting
procedures for DCEs
using asynchronous-to-
synchronous
conversionITUV
Li18nux Globalization LI18NUX 2000 http://www.openi18n.o
Specification Globalization rg/docs/html/LI18NUX-
Specification, Version 2000-amd4.htm
1.0 with Amendment 4
Linux Allocated Device LINUX ALLOCATED http://www.lanana.org/
Registry DEVICES docs/device-
list/devices-2.6+.txt
© 2021 ISO/IEC – All rights reserved 5
Name Title URL
Linux Assigned Names Linux Assigned Names http://www.lanana.org/
And Numbers And Numbers
Authority Authority
Mozilla's NSS SSL Mozilla's NSS SSL http://www.mozilla.org
Reference Reference /projects/security/pki/ns
s/ref/ssl/
NSPR Reference Mozilla's NSPR http://refspecs.linuxfou
Reference ndation.org/NSPR_API
_Reference/NSPR_API.
html
PAM Open Software http://www.opengroup.
Foundation, Request org/tech/rfc/mirror-
For Comments: 86.0 , rfc/rfc86.0.txt
October 1995, V. Samar
& R.Schemers (SunSoft)
RFC 1321: The MD5 IETF RFC 1321: The http://www.ietf.org/rfc/
Message-Digest MD5 Message-Digest rfc1321.txt
Algorithm Algorithm
RFC 1833: Binding IETF RFC 1833: Binding http://www.ietf.org/rfc/
Protocols for ONC RPC Protocols for ONC RPC rfc1833.txt
Version 2 Version 2
RFC 1950: ZLIB IETF RFC 1950: ZLIB http://www.ietf.org/rfc/
Compressed Data Compressed Data rfc1950.txt
Format Specication Format Specification
RFC 1951: DEFLATE IETF RFC 1951: http://www.ietf.org/rfc/
Compressed Data DEFLATE Compressed rfc1951.txt
Format Specification Data Format
Specification version 1.3
RFC 1952: GZIP File IETF RFC 1952: GZIP http://www.ietf.org/rfc/
Format Specification file format specification rfc1952.txt
version 4.3
RFC 2440: OpenPGP IETF RFC 2440: http://www.ietf.org/rfc/
Message Format OpenPGP Message rfc2440.txt
Format
RFC 2821:Simple Mail IETF RFC 2821: Simple http://www.ietf.org/rfc/
Transfer Protocol Mail Transfer Protocol rfc2821.txt
RFC 2822:Internet IETF RFC 2822: Internet http://www.ietf.org/rfc/
Message Format Message Format rfc2822.txt
RFC 5531/4506 RPC & IETF RFC 5531 & 4506 http://www.ietf.org/
XDR
6 © 2021 ISO/IEC – All rights reserved
Name Title URL
RFC 791:Internet IETF RFC 791: Internet http://www.ietf.org/rfc/
Protocol Protocol Specification rfc791.txt
RPM Package Format RPM Package Format http://www.rpm.org/m
V3.0 ax-rpm/s1-rpm-file-
format-rpm-file-
format.html
zlib Manual zlib 1.2 Manual http://www.gzip.org/zli
b/
© 2021 ISO/IEC – All rights reserved 7
3 Requirements
3.1 Relevant Libraries
The libraries listed in Table 3-1 shall be available on a Linux Standard Base system,
with the specified runtime names. The libraries listed in Table 3-2 are architecture
specific, but shall be available on all LSB conforming systems. This list may be
supplemented or amended by the relevant architecture specific part of the LSB
Core Specification.
Table 3-1 Standard 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 3-2 Standard Library Names defined in the Architecture Specific Parts of
the LSB Core Specification
Library Runtime Name
libc See architecture specific part.
libm See architecture specific part.
proginterp See architecture specific part.
These libraries will be in an implementation-defined directory which the
dynamic linker shall search by default.
3.2 LSB Implementation Conformance
A conforming implementation is necessarily architecture specific, and must
provide the interfaces specified by both the generic LSB Core specification (LSB
8 © 2021 ISO/IEC – All rights reserved
Core - Generic) and the relevant architecture specific part of the LSB Core
Specification.
Rationale: An implementation must provide at least the interfaces specified in these
specifications. It may also provide additional interfaces.
A conforming implementation shall satisfy the following requirements:
• A processor architecture represents a family of related processors which may
not have identical feature sets. The architecture specific parts of the LSB Core
Specification that supplement this specification for a given target processor
architecture describe a minimum acceptable processor. The implementation
shall provide all features of this processor, whether in hardware or through
emulation transparent to the application.
• The implementation shall be capable of executing compiled applications
having the format and using the system interfaces described in this
specification.
• The implementation shall provide libraries containing the interfaces specified
by this specification, and shall provide a dynamic linking mechanism that
allows these interfaces to be attached to applications at runtime. All the
interfaces shall behave as specified in this specification.
• The map of virtual memory provided by the implementation shall conform to
the requirements of this specification.
• The implementation's low-level behavior with respect to function call linkage,
system traps, signals, and other such activities shall conform to the formats
described in this specification.
• The implementation shall provide all of the mandatory interfaces in their
entirety.
• The implementation may provide one or more of the optional interfaces. Each
optional interface that is provided shall be provided in its entirety. The product
documentation shall state which optional interfaces are provided.
• The implementation shall provide all files and utilities specified as part of this
specification in the format defined here and in other documents normatively
included by reference. All commands and utilities shall behave as required by
this specification. The implementation shall also provide all mandatory
components of an application's runtime environment that are included or
referenced in this specification.
• The implementation, when provided with standard data formats and values at
a named interface, shall provide the behavior defined for those values and data
formats at that interface. However, a conforming implementation may consist
of components which are separately packaged and/or sold. For example, a
vendor of a conforming implementation might sell the hardware, operating
system, and windowing system as separately packaged items.
• The implementation may provide additional interfaces with different names.
It may also provide additional behavior corresponding to data values outside
the standard ranges, for standard named interfaces.
© 2021 ISO/IEC – All rights reserved 9
3.3 LSB Application Conformance
A conforming application containing object files is necessarily architecture
specific, and must conform to both the generic LSB Core specification (LSB Core
- Generic) and
...










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...