Linux Standard Base
Encyclopedia
The Linux Standard Base (LSB) is a joint project by several Linux distribution
s under the organizational structure of the Linux Foundation
to standardize the software system structure, including the filesystem hierarchy
, used with Linux
operating system
. The LSB is based on the POSIX
specification, the Single UNIX Specification
, and several other open standards, but extends them in certain areas.
According to the LSB:
The LSB compliance may be certified for a product by a certification procedure.
The LSB specifies for example: standard libraries, a number of commands and utilities that extend the POSIX
standard, the layout of the file system hierarchy
, run levels, the printing system, including spoolers
such as CUPS
and tools like Foomatic
and several extensions to the X Window System
.
(ABI) for independent software vendor
s. To achieve backward compatibility, each subsequent version is purely additive. In other words, interfaces are only added, not removed. The LSB adopted an interface deprecation policy to give application developers enough time in case an interface is removed from the LSB. This allows the developer to rely on every interface in the LSB for a known time and also to plan for changes, without being surprised. Interfaces are only removed after having been marked "deprecated" for at least three major versions, or roughly six years.
. The main parts of it are:
There is also ISO/IEC TR 24715:2006 which identifies areas of conflict between ISO/IEC 23360 (the Linux Standard Base 3.1 specification) and the ISO/IEC 9945:2003 (POSIX) International Standard.
ISO/IEC 23360 and ISO/IEC TR 24715 can be freely downloaded from ISO website.
project, outside the sphere of its member companies.
format.
This choice of the package format precludes the use of Debian's deb package format
, which predates rpm. Changing the underlying package format of the Debian distribution to satisfy the LSB is considered fairly unrealistic. The use of the deb format has not diminished since the introduction of LSB; on the contrary it has increased, especially with the advent of Ubuntu
.
To address this, the standard does not dictate what package format the software system must use for its own packages, merely that RPM must be supported to allow packages from third-party distributors to be installed on a conforming system.
needs to use Debian's Alien
program to transform them into the native package format and then install them.
The LSB-specified RPM format has a restricted subset of RPM features—to block usage of RPM features that would be untranslatable to .deb with Alien or other package conversion programs, and vice versa, as each format has capabilities the other lacks. In practice, not all Linux binary packages are necessarily LSB-compliant, so while most can be converted between .rpm and .deb, this operation is restricted to a subset of packages.
By using Alien, Debian is LSB-compatible for all intents and purposes, but according to the description of their lsb package, the presence of the package "does not imply that we believe that Debian fully complies with the Linux Standard Base, and should not be construed as a statement that Debian is LSB-compliant."
In general, Debian does strive to comply with the LSB, but there may be other limitations.
released a tool to address application compatibility testing.
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
s under the organizational structure of the Linux Foundation
Linux Foundation
The Linux Foundation is a non-profit technology consortium chartered to foster the growth of Linux.Founded in 2007 by the merger of the Open Source Development Labs and the Free Standards Group , the Linux Foundation sponsors the work of Linux creator Linus Torvalds and is supported by leading...
to standardize the software system structure, including the filesystem hierarchy
Filesystem Hierarchy Standard
The Filesystem Hierarchy Standard defines the main directories and their contents in Linux operating systems. For the most part, it is a formalization and extension of the traditional BSD filesystem hierarchy....
, used with Linux
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
. The LSB is based on the POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
specification, the Single UNIX Specification
Single UNIX Specification
The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix"...
, and several other open standards, but extends them in certain areas.
According to the LSB:
- The goal of the LSB is to develop and promote a set of open standards that will increase compatibility among Linux distributions and enable software applications to run on any compliant system even in binary form. In addition, the LSB will help coordinate efforts to recruit software vendors to port and write products for Linux Operating System.
The LSB compliance may be certified for a product by a certification procedure.
The LSB specifies for example: standard libraries, a number of commands and utilities that extend the POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
standard, the layout of the file system hierarchy
Filesystem Hierarchy Standard
The Filesystem Hierarchy Standard defines the main directories and their contents in Linux operating systems. For the most part, it is a formalization and extension of the traditional BSD filesystem hierarchy....
, run levels, the printing system, including spoolers
Spooling
In computer science, spool refers to the process of placing data in a temporary working area for another program to process. The most common use is in writing files on a magnetic tape or disk and entering them in the work queue for another process. Spooling is useful because devices access data at...
such as CUPS
Common Unix Printing System
CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server...
and tools like Foomatic
Foomatic
Foomatic is a configurable printing filter. It uses PPD files as configuration to generate appropriate output for a given printer. It is intended to be used with the Common Unix Printing System . It uses ghostscript in the background, using options according to the PPD file of the printer...
and several extensions to the X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
.
Version history
- 1.0: Initial release 2001-06-29.
- 1.1: Released 2002-01-22. Added hardware specific specifications (IA32).
- 1.2: Released 2002-06-28. Added hardware specific specifications (PowerPCPowerPCPowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
32-bit32-bitThe range of integer values that can be stored in 32 bits is 0 through 4,294,967,295. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory....
). Certification began July 2002. - 1.2.1: Released October 2002. Added ItaniumItaniumItanium is a family of 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel markets the processors for enterprise servers and high-performance computing systems...
. - 1.3: Released 2002-12-17. Added hardware specific specifications (Itanium, Enterprise System Architecture/390, z/Architecture).
- 2.0: Released 2004-08-31.
- LSB is modularized to:
- LSB-Core
- LSB-CXX
- LSB-Graphics
- LSB-I18n (not released)
- New hardware specific specifications (PowerPC 64-bit64-bit64-bit is a word size that defines certain classes of computer architecture, buses, memory and CPUs, and by extension the software that runs on them. 64-bit CPUs have existed in supercomputers since the 1970s and in RISC-based workstations and servers since the early 1990s...
, AMD64). - Synchronized to Single UNIX SpecificationSingle UNIX SpecificationThe Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix"...
(SUS) version 3.
- LSB is modularized to:
- 2.0.1: Released 2004-10-21, ISO version of LSB 2.0, which included specification for all hardware architectures (except LSB-Graphics, of which only a generic version is available).
- 2.1: Released 2005-03-11.
- 3.0: Released 2005-07-01. Among other library changes:
- C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
ABI is changed to the one used by gccGNU Compiler CollectionThe GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
3.4 - The core specification is updated to ISO POSIXPOSIXPOSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
(2003) - Technical Corrigenda 1: 2005
- C++
- 3.1: Released 2005-10-31. This version has been submitted as ISO/IEC 23360.
- 3.2: Released 2008-01-28. This version has been submitted as ISO/IEC 23360.
- 4.0: Released 2008-11-11. This version contains the following features:
- glibc 2.4
- Binary compatibility with LSB 3.x
- Easier to use SDK
- Support for newer versions of GTK and CairoCairo (graphics)cairo is a software library used to provide a vector graphics-based, device-independent API for software developers. It is designed to provide primitives for 2-dimensional drawing across a number of different backends...
graphical libraries - JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
(optional module) - Simpler ways of creating LSB-compliant RPMp packages
- Crypto API (via the Network Security ServicesNetwork Security ServicesIn computing, Network Security Services comprises a set of libraries designed to support cross-platform development of security-enabled client and server applications. NSS provides a complete open-source implementation of crypto libraries supporting SSL and S/MIME...
library) (optional module)
- 4.1: Released 2011-02-16 :
- Java removed
Backwards compatibility
The LSB is designed to be binary-compatible and produce a stable application binary interfaceApplication binary interface
In computer software, an application binary interface describes the low-level interface between an application program and the operating system or another application.- Description :...
(ABI) for independent software vendor
Independent software vendor
Independent software vendor is a business term for companies specializing in making or selling software, designed for mass marketing or for niche markets...
s. To achieve backward compatibility, each subsequent version is purely additive. In other words, interfaces are only added, not removed. The LSB adopted an interface deprecation policy to give application developers enough time in case an interface is removed from the LSB. This allows the developer to rely on every interface in the LSB for a known time and also to plan for changes, without being surprised. Interfaces are only removed after having been marked "deprecated" for at least three major versions, or roughly six years.
ISO standard
The LSB is registered as an official ISO standardInternational Organization for Standardization
The International Organization for Standardization , widely known as ISO, is an international standard-setting body composed of representatives from various national standards organizations. Founded on February 23, 1947, the organization promulgates worldwide proprietary, industrial and commercial...
. The main parts of it are:
- ISO/IEC 23360-1:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 1: Generic specification
- ISO/IEC 23360-2:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 2: Specification for IA32 architecture
- ISO/IEC 23360-3:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 3: Specification for IA64 architecture
- ISO/IEC 23360-4:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 4: Specification for AMD64 architecture
- ISO/IEC 23360-5:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 5: Specification for PPC32 architecture
- ISO/IEC 23360-6:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 6: Specification for PPC64 architecture
- ISO/IEC 23360-7:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 7: Specification for S390 architecture
- ISO/IEC 23360-8:2006 Linux Standard Base (LSB) core specification 3.1 -- Part 8: Specification for S390X architecture
There is also ISO/IEC TR 24715:2006 which identifies areas of conflict between ISO/IEC 23360 (the Linux Standard Base 3.1 specification) and the ISO/IEC 9945:2003 (POSIX) International Standard.
ISO/IEC 23360 and ISO/IEC TR 24715 can be freely downloaded from ISO website.
Criticism
The LSB has been criticized for not taking input from projects, most notably the DebianDebian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
project, outside the sphere of its member companies.
Choice of RPM package format
The LSB specifies that software packages should either be delivered as an LSB-compliant installer, or (preferably) be delivered in a restricted form of the RPM Package ManagerRPM Package Manager
RPM Package Manager is a package management system. The name RPM variously refers to the .rpm file format, files in this format, software packaged in such files, and the package manager itself...
format.
This choice of the package format precludes the use of Debian's deb package format
Deb (file format)
deb is the extension of the Debian software package format and the most often used name for such binary packages. Like the "Deb" part of the term Debian, it originates from the name of Debra, erstwhile girlfriend and now ex-wife of Debian's founder Ian Murdock.Debian packages are also used in...
, which predates rpm. Changing the underlying package format of the Debian distribution to satisfy the LSB is considered fairly unrealistic. The use of the deb format has not diminished since the introduction of LSB; on the contrary it has increased, especially with the advent of Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
.
To address this, the standard does not dictate what package format the software system must use for its own packages, merely that RPM must be supported to allow packages from third-party distributors to be installed on a conforming system.
Limitations on Debian
Debian has included optional support for the LSB early on, at version 1.1 in "woody" and 2.0 in "sarge", and later 3.1 in "etch" and 3.2 in "lenny". To use foreign LSB-compliant RPM packages, the end-userEnd-user
Economics and commerce define an end user as the person who uses a product. The end user or consumer may differ from the person who purchases the product...
needs to use Debian's Alien
Alien (software)
Alien is a computer program that converts between different Linux package formats, written by Joey Hess.-Features:Alien supports conversion between Linux Standard Base, RPM, deb, Stampede , Solaris and Slackware packages...
program to transform them into the native package format and then install them.
The LSB-specified RPM format has a restricted subset of RPM features—to block usage of RPM features that would be untranslatable to .deb with Alien or other package conversion programs, and vice versa, as each format has capabilities the other lacks. In practice, not all Linux binary packages are necessarily LSB-compliant, so while most can be converted between .rpm and .deb, this operation is restricted to a subset of packages.
By using Alien, Debian is LSB-compatible for all intents and purposes, but according to the description of their lsb package, the presence of the package "does not imply that we believe that Debian fully complies with the Linux Standard Base, and should not be construed as a statement that Debian is LSB-compliant."
In general, Debian does strive to comply with the LSB, but there may be other limitations.
Quality of compliance test suites
Additionally, the compliance test suites have been criticized for being buggy and incomplete—most notably, in 2005 Ulrich Drepper criticized the LSB for poorly written tests which can cause incompatibility between LSB-certified distributions when some implement incorrect behavior to make buggy tests work, while others apply for and receive waivers from complying with the tests. He also denounced a lack of application testing, pointing out that testing only distributions can never solve the problem of applications relying on implementation-defined behavior. However, the LSB test coverage has been improved significantly in recent years. Also, the Linux FoundationLinux Foundation
The Linux Foundation is a non-profit technology consortium chartered to foster the growth of Linux.Founded in 2007 by the merger of the Open Source Development Labs and the Free Standards Group , the Linux Foundation sponsors the work of Linux creator Linus Torvalds and is supported by leading...
released a tool to address application compatibility testing.
External links
- freestandards.org archives of the specification (Broken, redirects to http://www.linux-foundation.org)
- Linux Standard Base (LSB)
- OLVER Test Suite for LSB - Open Linux VERification project
- Linux Foundation's Linux Developer Network (LDN) - to help developers building portable Linux applications.
Media
- Four Linux Vendors Agree On An LSB Implementation (slashdot)
- August 26, 1998 press release describing breakdown of teams (at the time) and who was involved, of historical interest
- Yes, the LSB Has Value - Response to Drepper (2005) by Jeff Licquia