Linux Standard Base (LSB) core specification 3.1 — Part 1: Generic specification

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 specification ("LSB-generic" or "generic LSB"), ISO/IEC 23360-1:2006, describing those parts of the interface that remain constant across all implementations of the LSB, and an architecture-specific part ("LSB-arch" or "archLSB") describing the parts of the interface that vary by processor architecture. Together, the LSB-generic and the relevant architecture-specific parts of ISO/IEC 23360 for a single hardware architecture provide a complete interface specification for compiled application programs on systems that share a common hardware architecture. ISO/IEC 23360-1:2006, the LSB-generic document, is used in conjunction with an architecture-specific part. Whenever a section of the LSB-generic specification is supplemented by architecture-specific information, the LSB-generic document includes a reference to the architecture part.

Spécifications 3.1 relatives au noyau de base normalisé Linux (LSB) — Partie 1: Spécifications génériques

General Information

Status
Withdrawn
Publication Date
04-Dec-2006
Withdrawal Date
04-Dec-2006
Current Stage
9599 - Withdrawal of International Standard
Completion Date
08-Oct-2021
Ref Project

Relations

Buy Standard

Standard
ISO/IEC 23360-1:2006 - Linux Standard Base (LSB) core specification 3.1
English language
458 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 23360-1:2006 - Linux Standard Base (LSB) core specification 3.1
English language
458 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO/IEC
STANDARD 23360-1
First edition
2006-12-15

Linux Standard Base (LSB) core
specification 3.1 —
Part 1:
Generic specification
Spécifications 3.1 relatives au noyau de base normalisé Linux (LSB) —
Partie 1: Spécifications génériques




Reference number
ISO/IEC 23360-1:2006(E)
©
ISO/IEC 2006

---------------------- Page: 1 ----------------------
ISO/IEC 23360-1:2006(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.


©  ISO/IEC 2006
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland

ii © ISO/IEC 2006 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC 23360-1:2006(E)


Linux Standard Base Core Specification 3.1
ISO/IEC 23360-1:2006(E)
Copyright © 2006 ISO/IEC
This standard includes material that has been provided by the Free Standards Group under the GNU Free
Documentation License Version 1.1 published by the Free Software Foundation.
Portions of the text are copyrighted by the following parties:
• The Regents of the University of California
• Free Software Foundation
• Ian F. Darwin
• Paul Vixie
• BSDI (now Wind River)
• Andrew G Morgan
• Jean-loup Gailly and Mark Adler
• Massachusetts Institute of Technology
These excerpts are being used in accordance with their respective licenses.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
UNIX is a registered trademark of The Open Group.
LSB is a trademark of the Free Standards Group in the United States and other countries.
AMD is a trademark of Advanced Micro Devices, Inc.
Intel and Itanium are registered trademarks and Intel386 is a trademark of Intel Corporation.
PowerPC is a registered trademark and PowerPC Architecture is a trademark of the IBM Corporation.
S/390 is a registered trademark of the IBM Corporation.
OpenGL is a registered trademark of Silicon Graphics, Inc.
© ISO/IEC 2006 – All rights reserved iii

---------------------- Page: 3 ----------------------
ISO/IEC 23360-1:2006(E)
Contents

Foreword .viii
Introduction .ix
I Introductory Elements .0
1 Scope.1
1.1 General.1
1.2 Module Specific Scope.1
2 References.2
2.1 Normative References .2
2.2 Informative References/Bibliography .3
3 Requirements .6
3.1 Relevant Libraries .6
3.2 LSB Implementation Conformance .6
3.3 LSB Application Conformance.7
4 Definitions .9
5 Terminology .10
6 Documentation Conventions .12
7 Relationship To ISO/IEC 9945 POSIX .13
8 Relationship To Other Free Standards Group Specifications.14
II Executable And Linking Format (ELF).15
9 Introduction.16
10 Low Level System Information.17
10.1 Operating System Interface .17
10.2 Machine Interface.17
11 Object Format.18
11.1 Object Files .18
11.2 Sections .18
11.3 Special Sections.21
11.4 Symbol Mapping.27
11.5 DWARF Extensions .27
11.6 Exception Frames .30
11.7 Symbol Versioning.35
11.8 ABI note tag .39
12 Dynamic Linking .40
12.1 Program Loading and Dynamic Linking.40
12.2 Program Header.40
12.3 Dynamic Entries .40
III Base Libraries .45
13 Base Libraries .46
13.1 Introduction .46
13.2 Program Interpreter.46
13.3 Interfaces for libc.46
13.4 Data Definitions for libc .59
13.5 Interface Definitions for libc .111
13.6 Interfaces for libm .212
13.7 Data Definitions for libm.215
13.8 Interface Definitions for libm .222
13.9 Interfaces for libpthread.222
13.10 Data Definitions for libpthread .225
13.11 Interface Definitions for libpthread .229
13.12 Interfaces for libgcc_s .230
13.13 Data Definitions for libgcc_s.230
13.14 Interfaces for libdl .231
13.15 Data Definitions for libdl .232
iv © ISO/IEC 2006 – All rights reserved

---------------------- Page: 4 ----------------------
ISO/IEC 23360-1:2006(E)
13.16 Interface Definitions for libdl .232

13.17 Interfaces for librt.234
13.18 Interfaces for libcrypt.235
13.19 Interfaces for libpam.236
13.20 Data Definitions for libpam .237
13.21 Interface Definitions for libpam .238
IV Utility Libraries.250
14 Utility Libraries.251
14.1 Introduction .251
14.2 Interfaces for libz.251
14.3 Data Definitions for libz .252
14.4 Interface Definitions for libz.254
14.5 Interfaces for libncurses.299
14.6 Data Definitions for libncurses.304
14.7 Interfaces for libutil.312
14.8 Interface Definitions for libutil.313
V Commands and Utilities.318
15 Commands and Utilities.319
15.1 Commands and Utilities .319
15.2 Command Behavior.320
VI Execution Environment .381
16 File System Hierarchy .382
16.1 /dev: Device Files.382
16.2 /etc: Host-specific system configuration.382
16.3 User Accounting Databases.384
16.4 Path For System Administration Utilities.384
17 Additional Recommendations.385
17.1 Recommendations for applications on ownership and
permissions.385
18 Additional Behaviors .387
18.1 Mandatory Optional Behaviors.387
19 Localization .389
19.1 Introduction .389
19.2 Regular Expressions.389
19.3 Pattern Matching Notation .389
VII System Initialization .391
20 System Initialization.392
20.1 Cron Jobs .392
20.2 Init Script Actions.393
20.3 Comment Conventions for Init Scripts .394
20.4 Installation and Removal of Init Scripts.396
20.5 Run Levels.397
20.6 Facility Names .398
20.7 Script Names.399
20.8 Init Script Functions.399
VIII Users & Groups.402
21 Users & Groups.403
21.1 User and Group Database.403
21.2 User & Group Names .403
21.3 User ID Ranges.404
21.4 Rationale.404
© ISO/IEC 2006 – All rights reserved v

---------------------- Page: 5 ----------------------
ISO/IEC 23360-1:2006(E)
IX Package Format and Installation.405

22 Software Installation .406
22.1 Introduction .406

22.2 Package File Format.406
22.3 Package Script Restrictions .425
22.4 Package Tools .425
22.5 Package Naming.426
22.6 Package Dependencies .427
22.7 Package Architecture Considerations .427
A Alphabetical Listing of Interfaces.428
A.1 libc.428
A.2 libcrypt .440
A.3 libdl.440
A.4 libm.440
A.5 libncurses.445
A.6 libpam .450
A.7 libpthread .450
A.8 librt .452
A.9 libutil .452
A.10 libz .452
B Future Directions (Informative).454
B.1 Introduction .454
B.2 Commands And Utilities .455
lsbinstall.455
vi © ISO/IEC 2006 – All rights reserved

---------------------- Page: 6 ----------------------
ISO/IEC 23360-1:2006(E)
List of Figures

11-1 Version Definition Entries .36
11-2 Version Definition Auxiliary Entries.37
11-3 Version Needed Entries .37
11-4 Version Needed Auxiliary Entries.38
12-1 Dynamic Structure.40
© ISO/IEC 2006 – All rights reserved vii

---------------------- Page: 7 ----------------------
ISO/IEC 23360-1:2006(E)
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. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
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.
International Standard ISO/IEC 23360-1 was prepared by the Free Standards Group and was adopted, under
the PAS procedure, by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee
SC 22, Programming languages, their environments and system software interfaces.
ISO/IEC 23360 consists of the following parts, under the general title Linux Standard Base (LSB) core
specification 3.1:
⎯ Part 1: Generic specification
⎯ Part 2: Specification for IA32 architecture
⎯ Part 3: Specification for IA64 architecture
⎯ Part 4: Specification for AMD64 architecture
⎯ Part 5: Specification for PPC32 architecture
⎯ Part 6: Specification for PPC64 architecture
⎯ Part 7: Specification for S390 architecture
⎯ Part 8: Specification for S390X architecture
viii © ISO/IEC 2006 – All rights reserved

---------------------- Page: 8 ----------------------
ISO/IEC 23360-1:2006(E)
Introduction

The LSB defines a binary interface for application programs that are compiled

and packaged for LSB-conforming implementations on many different hardware
architectures. Since a binary specification includes information specific to

the computer processor architecture for which it is intended, it is not possible for
a single document to specify the interface for all possible LSB-conforming
implementations. Therefore, the LSB is a family of specifications, rather than a
single one.
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 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:
• The first number (x) is the major version number. All versions with the same
major version number should share binary compatibility. Any addition or
deletion of a new library results in a new version number. Interfaces marked
as deprecated may be removed from the specification at a major version
change.
• The second number (y) is the minor version number. Individual interfaces
may be added if all certified implementations already had that (previously
undocumented) interface. Interfaces may be marked as deprecated at a minor
version change. Other minor changes may be permitted at the discretion of the
LSB workgroup.
• 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.
This is version 3.1 of the Linux Standard Base Core Specification. This
specification is part of a family of specifications under the general title "Linux
Standard Base (LSB) core specification 3.1". Developers of applications or
implementations interested in using the LSB trademark should see the Free
Standards Group Certification Policy for details.
© ISO/IEC 2006 – All rights reserved ix

---------------------- Page: 9 ----------------------
I Introductory Elements

---------------------- Page: 10 ----------------------
I NTERNATIONAL STANDARD ISO/IEC 23360-1:2006(E)
Linux Standard Base (LSB) core specification 3.1 —
Part 1:
Generic specification
1 Scope
1.1 General
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 specification
("LSB-generic" or "generic LSB"), ISO/IEC 23360-1, describing those parts of the
interface that remain constant across all implementations of the LSB, and an
architecture-specific part ("LSB-arch" or "archLSB") describing the parts of the
interface that vary by processor architecture. Together, the LSB-generic and the
relevant architecture-specific part of ISO/IEC 23360 for a single hardware
architecture provide a complete interface specification for compiled application
programs on systems that share a common hardware architecture.
ISO/IEC 23360-1, the LSB-generic document, should be used in conjunction with
an architecture-specific part. Whenever a section of the LSB-generic specification
is supplemented by architecture-specific information, the LSB-generic document
includes a reference to the architecture part. Architecture-specific parts of
ISO/IEC 23360 may also contain additional information that is not referenced in
the LSB-generic document.
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.
1.2 Module Specific Scope
This is the Core module of the Linux Standard Base (LSB), ISO/IEC 23360-1. This
module provides the fundamental system interfaces, libraries, and runtime
environment upon which all conforming applications and libraries depend.
Interfaces described in this part of ISO/IEC 23360 are mandatory except where
explicitly listed otherwise. Core interfaces may be supplemented by other
modules; all modules are built upon the core.
© 2006 ISO/IEC — All rights reserved 1

---------------------- Page: 11 ----------------------
ISO/IEC 23360-1:2006(E)
2 References
2.1 Normative References
The following referenced documents are indispensable for the application of this
document. For dated references, only the edition cited applies. For undated
references, the latest edition of the referenced document (including any
amendments) applies.
Note: Where copies of a document are available on the World Wide Web, a Uniform
Resource Locator (URL) is given for informative purposes only. This may point to a
more recent copy of the referenced specification, or may be out of date. Reference
copies of specifications at the revision level indicated may be found at the Free
Standards Group's Reference Specifications (http://refspecs.freestandards.org) site.
Table 2-1 Normative References
Name Title URL
Filesystem Hierarchy Filesystem Hierarchy http://www.pathname
Standard Standard (FHS) 2.3 .com/fhs/
ISO C (1999) ISO/IEC 9899: 1999,
Programming
Languages — C
ISO POSIX (2003) http://www.unix.org/
ISO/IEC 9945-1:2003,
version3/
Information technology —
Portable Operating
System Interface
(POSIX) — Part 1: Base
Definitions
ISO/IEC 9945-2:2003,
Information technology —
Portable Operating
SystemInterface
(POSIX)—Part 2:
System Interfaces
ISO/IEC 9945-3:2003,
Information technology —
Portable Operating
System Interface
(POSIX) — Part 3: Shell
and Utilities
ISO/IEC9945-4:2003 ,
Information technology —
Portable Operating
SystemInterface
(POSIX)—Part 4:
Rationale
2 © 2006 ISO/IEC — All rights reserved

---------------------- Page: 12 ----------------------
ISO/IEC 23360-1:2006(E)
Name Title URL
Itanium™ C++ ABI Itanium™ C++ ABI http://refspecs.freestan
(Revision 1.83) dards.org/cxxabi-1.83.h
tml
Large File Support Large File Support http://www.UNIX-syst
ems.org/version2/wha
tsnew/lfs20mar.html
SUSv2 CAE Specification, http://www.opengrou
January 1997, System p.org/publications/cat
Interfaces and Headers alog/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
Definition, Fourth
Edition
System V ABI System V Application http://www.caldera.co
Binary Interface, m/developers/devspec
Edition 4.1 s/gabi41.pdf
System V ABI Update System V Application http://www.caldera.co
Binary Interface - m/developers/gabi/20
DRAFT - 17 December 03-12-17/contents.html
2003
X/Open Curses CAE Specification, May http://www.opengrou
1996, X/Open Curses, p.org/publications/cat
Issue 4, Version 2 (ISBN: alog/un.htm
1-85912-171-3, C610),

plus Corrigendum U018
© 2006 ISO/IEC — All rights reserved 3

---------------------- Page: 13 ----------------------
ISO/IEC 23360-1:2006(E)
2.2 Informative References/Bibliography
In addition, the specifications listed below provide essential background
information to implementors of this specification. These references are included
for information only.
Table 2-2 Other References
Name Title URL
DWARF Debugging DWARF Debugging http://refspecs.freestan
Information Format, Information Format, dards.org/dwarf/dwar
Revision 2.0.0 Revision 2.0.0 (July 27, f-2.0.0.pdf
1993)
DWARF Debugging DWARF Debugging http://refspecs.freestan
Information Format, Information Format, dards.org/dwarf/
Revision 3.0.0 (Draft) Revision 3.0.0 (Draft)
IEC 60559/IEEE 754 IEC 60559:1989, Binary http://www.ieee.org/
Floating Point floating-point
arithmetic for
microprocessor systems
ISO/IEC TR 14652 ISO/IEC TR 14652:2004,
Information technology —
Specification method
for cultural c
...

INTERNATIONAL ISO/IEC
STANDARD 23360
First edition
2006-12-15

Linux Standard Base (LSB) core
specification 3.1 —
Part 1: Generic specification
Part 2: Specification for IA32 architecture
Part 3: Specification for IA64 architecture
Part 4: Specification for AMD64 architecture
Part 5: Specification for PPC32 architecture
Part 6: Specification for PPC64 architecture
Part 7: Specification for S390 architecture
Part 8: Specification for S390X architecture
Spécifications 3.1 relatives au noyau de base normalisé Linux (LSB) —
Partie 1: Spécifications génériques
Partie 2: Spécifications pour l'architecture IA32
Partie 3: Spécifications pour l'architecture IA64
Partie 4: Spécifications pour l'architecture AMD64
Partie 5: Spécifications pour l'architecture PPC32
Partie 6: Spécifications pour l'architecture PPC64
Partie 7: Spécifications pour l'architecture S390
Partie 8: Spécifications pour l'architecture S390X




Reference number
ISO/IEC 23360:2006(E)
©
ISO/IEC 2006

---------------------- Page: 1 ----------------------
ISO/IEC 23360:2006(E)

PDF disclaimer
PDF files may contain embedded typefaces. In accordance with Adobe's licensing policy, such files may be printed or viewed but shall
not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading a PDF file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create the PDF file(s) constituting this document can be found in the General Info relative to
the file(s); the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the files are suitable for
use by ISO member bodies. In the unlikely event that a problem relating to them is found, please inform the Central Secretariat at the
address given below.

This CD-ROM contains the publication ISO/IEC 23360 (parts 1 to 8) in portable document format (PDF),
which can be viewed using Adobe® Acrobat® Reader. It is composed of nine files, one for each part of
ISO/IEC 23360, plus a ReadMe file. These files include:
1) “Part 1: Generic specification” on the file “C043781e.pdf”;
2) “Part 2: Specification for IA32 architecture” on the file “C043782e.pdf”;
3) “Part 3: Specification for IA64 architecture” on the file “C043783e.pdf”;
4) “Part 4: Specification for AMD64 architecture” on the file “C043784e.pdf”;
5) “Part 5: Specification for PPC32 architecture” on the file “C043785e.pdf”;
6)
...

Questions, Comments and Discussion

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