Linux Standard Base
   HOME

TheInfoList



OR:

The Linux Standard Base (LSB) was a joint project by several Linux distributions under the organizational structure of the Linux Foundation to standardize the software system structure, including the Filesystem Hierarchy Standard used in the Linux kernel. LSB was based on the
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
specification, the Single UNIX Specification (SUS), and several other open standards, but extended them in certain areas. According to 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 Systems.
LSB compliance might be certified for a product by a certification procedure. LSB specified standard
libraries A library is a collection of Document, materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or electronic media, digital access (soft copies) materials, and may be a ...
(centered around the ), a number of commands and utilities that extend the
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
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 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
. It also specified boot facilities, such as ''$local_fs'', ''$network'', which were used to indicate service dependencies in
System V Unix System V (pronounced: "System Five") is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983. Four major versions of System V were released, numbered 1, 2, 3, an ...
-style initialization scripts. A machine readable comment block at the top of a script provided the information necessary to determine at which point of the initialization process the script should be invoked; it was called the LSB header. The command lsb_release -a was available in many systems to get the LSB version details, or could be made available by installing an appropriate package, for example the redhat-lsb package in Red-Hat-flavored distributions such as Fedora, or the lsb-release package in Debian-based distributions. The standard stopped being updated in 2015 and current Linux distributions do not adhere to or offer it; however, the lsb_release command is sometimes still available.


Backward compatibility

LSB was designed to be binary-compatible and produced a stable application binary interface (ABI) for
independent software vendor An independent software vendor (ISV), also known as a software publisher, is an organization specializing in making and selling software, as opposed to computer hardware, designed for mass or niche markets. This is in contrast to in-house software, ...
s. To achieve backward compatibility, each subsequent version was purely additive. In other words, interfaces were only added; no interfaces were removed. The LSB adopted an interface deprecation policy to give application developers enough time in case an interface was removed from LSB. This allowed the developer to rely on every interface in LSB for a known time and also to plan for changes. Interfaces were only removed after having been marked "deprecated" for at least three major versions, or roughly eleven years. LSB 5.0 was the first major release that broke
backward compatibility Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especiall ...
with earlier versions.


Version history

* 1.0: Initial release June 29, 2001. * 1.1: Released January 22, 2002. Added hardware-specific specifications (
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called i386) is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the 80386 microprocessor in 1985. IA-32 is the first incarnation o ...
). * 1.2: Released June 28, 2002. Added hardware-specific specifications ( PowerPC 32-bit). Certification began July 2002. * 1.2.1: Released October 2002. Added
Itanium Itanium ( ) is a discontinued family of 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). Launched in June 2001, Intel marketed the processors for enterprise servers and high-performance comput ...
. * 1.3: Released December 17, 2002. Added hardware-specific specifications (Itanium, Enterprise System Architecture/390, z/Architecture). * 2.0: Released August 31, 2004 ** LSB is modularized to LSB-Core, LSB-CXX, LSB-Graphics, and LSB- I18n (not released) ** New hardware-specific specifications (PowerPC
64-bit In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit CPUs and ALUs are those that are based on processor registers, address buses, or data buses of that size. A compu ...
,
AMD64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging m ...
) ** Synchronized to Single UNIX Specification (SUS) version 3 * 2.0.1: Released October 21, 2004,
ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * 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 March 11, 2005. * 3.0: Released July 1, 2005. Among other library changes: ** GNU C Library version 2.3.4 **
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
ABI is changed to the one used by gcc 3.4 ** The core specification is updated to ISO
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
(2003) ** Technical Corrigenda 1: 2005 * 3.1: Released October 31, 2005. This version has been submitted as ISO/IEC 23360:2006. * 3.2: Released January 28, 2008. This version has been submitted as ISO/IEC 23360:2006. * 4.0: Released November 11, 2008. This version contains the following features: ** GNU C Library version 2.4 ** Binary compatibility with LSB 3.x ** Easier to use SDK ** Support for newer versions of
GTK GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and propriet ...
and
Cairo Cairo ( ; ar, القاهرة, al-Qāhirah, ) is the Capital city, capital of Egypt and its largest city, home to 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, List of ...
graphical libraries **
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
(optional module) ** Simpler ways of creating LSB-compliant RPM packages ** Crypto API (via the
Network Security Services Network Security Services (NSS) is a collection of cryptographic computer libraries designed to support cross-platform development of security-enabled client and server applications with optional support for hardware TLS/SSL acceleration on th ...
library) (optional module) * 4.1: Released February 16, 2011: ** Java removed ** "Trial Use" modules from LSB 4.0, covering multimedia ( ALSA), security (NSS) and desktop miscellaneous ( xdg-utils) have been promoted as required submodules ** Updated GTK+, Cairo and CUPS libraries ** Three new test suites added * 5.0: Released June 2, 2015, This version has been submitted as ISO/IEC 23360:2021 ** GNU C Library version 2.10 (for psiginfo) ** First major release that breaks backward compatibility with earlier versions (compatible with LSB 3.0, and mostly compatible with LSB 3.1 and later, with some exceptions) ** Incorporates the changes made in FHS 3.0 ** Qt 3 library has been removed ** Evolved module strategy; LSB is modularized to LSB Core, LSB Desktop, LSB Languages, LSB Imaging, and LSB Trial Use


ISO/IEC standard

The LSB, version 3.1, is registered as an official
ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * Iso ...
/ IEC international standard. 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 IA-32 architecture * ISO/IEC 23360-3:2006 Linux Standard Base (LSB) core specification 3.1 — Part 3: Specification for IA-64 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 ppc64 is an identifier commonly used within the Linux, GNU Compiler Collection (GCC) and LLVM open-source software communities to refer to the target computer architecture, architecture for applications optimized for 64-bit big-endian PowerPC an ...
architecture * ISO/IEC 23360-7:2006 Linux Standard Base (LSB) core specification 3.1 — Part 7: Specification for
S390 The IBM System/390 is a discontinued mainframe product family implementing the ESA/390, the fifth generation of the System/360 instruction set architecture. The first computers to use the ESA/390 were the Enterprise System/9000 (ES/9000) ...
architecture * ISO/IEC 23360-8:2006 Linux Standard Base (LSB) core specification 3.1 — Part 8: Specification for
S390X Linux on IBM Z or Linux on zSystems is the collective term for the Linux operating system compiled to run on IBM mainframes, especially IBM Z / IBM zSystems and IBM LinuxONE servers. Similar terms which imply the same meaning are ''Linux/390'', ...
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. The LSB, version 5.0, is also registered as an official
ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * Iso ...
/ IEC international standard. *ISO/IEC 23360-1-1:2021 Linux Standard Base (LSB) — Part 1-1: Common definitions *ISO/IEC 23360-1-2:2021 Linux Standard Base (LSB) — Part 1-2: Core specification generic part *ISO/IEC 23360-1-3:2021 Linux Standard Base (LSB) — Part 1-3: Desktop specification generic part *ISO/IEC 23360-1-4:2021 Linux Standard Base (LSB) — Part 1-4: Languages specification *ISO/IEC 23360-1-5:2021 Linux Standard Base (LSB) — Part 1-5: Imaging specification *ISO/IEC TS 23360-1-6:2021 Linux Standard Base (LSB) — Part 1-6: Graphics and Gtk3 specification *ISO/IEC 23360-2-2:2021 Linux Standard Base (LSB) — Part 2-2: Core specification for X86-32 architecture *ISO/IEC 23360-2-3:2021 Linux Standard Base (LSB) — Part 2-3: Desktop specification for X86-32 architecture *ISO/IEC 23360-3-2:2021 Linux Standard Base (LSB) — Part 3-2: Core specification for IA64 (Itanium™) architecture *ISO/IEC 23360-3-3:2021 Linux Standard Base (LSB) — Part 3-3: Desktop specification for IA64 (Itanium TM) architecture *ISO/IEC 23360-4-2:2021 Linux Standard Base (LSB) — Part 4-2: Core specification for AMD64 (X86-64) architecture *ISO/IEC 23360-4-3:2021 Linux Standard Base (LSB) — Part 4-3: Desktop specification for AMD64 (X86-64) architecture *ISO/IEC 23360-5-2:2021 Linux Standard Base (LSB) — Part 5-2: Core specification for PowerPC 32 architecture *ISO/IEC 23360-5-3:2021 Linux Standard Base (LSB) — Part 5-3: Desktop specification for PowerPC 32 architecture *ISO/IEC 23360-6-2:2021 Linux Standard Base (LSB) — Part 6-2: Core specification for PowerPC 64 architecture *ISO/IEC 23360-6-3:2021 Linux Standard Base (LSB) — Part 6-3: Desktop specification for PowerPC 64 architecture *ISO/IEC 23360-7-2:2021 Linux Standard Base (LSB) — Part 7-2: Core specification for S390 architecture *ISO/IEC 23360-7-3:2021 Linux Standard Base (LSB) — Part 7-3: Desktop specification for S390 architecture *ISO/IEC 23360-8-2:2021 Linux Standard Base (LSB) — Part 8-2: Core specification for S390X architecture *ISO/IEC 23360-8-3:2021 Linux Standard Base (LSB) — Part 8-3: Desktop specification for S390X architecture ISO/IEC 23360 and ISO/IEC TR 24715 can be freely downloaded from ISO website.


Reception

While LSB was a standard and without a competitor, it was followed only by few Linux distributions. For instance, only 21 distribution releases (versions) were certified for LSB version 4.0, notably Red Flag Linux Desktop 6.0,
Red Hat Enterprise Linux Red Hat Enterprise Linux (RHEL) is a commercial open-source Linux distribution developed by Red Hat for the commercial market. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop ...
6.0, SUSE Linux Enterprise 11, and Ubuntu 9.04 (Jaunty Jackalope); even fewer were certified for version 4.1. The LSB was criticized for not taking input from projects, most notably the Debian project, outside the sphere of its member companies.


Choice of the RPM package format

LSB specified that software packages should either be delivered as an LSB-compliant installer, or (preferably) be delivered in a restricted form of the RPM Package Manager format. This choice of package format precluded the use of other existing package formats not compatible with RPM. To address this, the standard did not dictate which package format the 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 included optional support for LSB early on, at version 1.1 in "woody" (3.0; July 19, 2002), 2.0 in "sarge" (3.1; June 6, 2005), 3.1 in "etch" (4.0; April 8, 2007), 3.2 in "lenny" (5.0; February 14, 2009) and 4.1 in "wheezy" (7; May 4, 2013). To use foreign LSB-compliant RPM packages, the
end-user In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrato ...
needs to use Debian's Alien program to transform them into the native package format and then install them. The LSB-specified RPM format had 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 were necessarily LSB-compliant, so while most could be converted between .rpm and .deb, this operation was restricted to a subset of packages. By using Alien, Debian was 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." Debian strived to comply with the LSB, but with many limitations. However, this effort ceased around July 2015 due to lack of interest and workforce inside the project. In September 2015, the Debian project confirmed that while support for Filesystem Hierarchy Standard (FHS) would continue, support for LSB had been dropped. Ubuntu followed Debian in November 2015.


Quality of compliance test suites

Additionally, the compliance test suites were criticized for being buggy and incomplete—most notably, in 2005
Ulrich Drepper Ulrich (), is a German given name, derived from Old High German ''Uodalrich'', ''Odalric''. It is composed of the elements '' uodal-'' meaning "(noble) heritage" and ''-rich'' meaning "rich, powerful". Attested from the 8th century as the name of Al ...
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. For the vendors considering LSB certifications in their portability efforts, the Linux Foundation sponsored a tool that analyzed and provided guidance on symbols and libraries that go beyond the LSB.


See also

* Intel Binary Compatibility Standard (iBCS) *
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
(Portable Operating System Interface)


References


External links


Linux Standard Base Specifications Archive
linuxfoundation.org
Linux Standard Base (LSB)
wiki.linuxfoundation.org
Open Linux VERification (OLVER) Project
linuxtesting.org
search for lsb packages
pkgs.org
lsb
pkgs.org
lsb in Launchpad
launchpad.net - bug reports Media:
Additional Vendors Participate in Growing LSB Effort
1998, debian.org - describes the breakdown of teams (at the time) and who was involved, of historical interest
Four Linux Vendors Agree On An LSB Implementation
2004, slashdot.org
Yes, the LSB Has Value
2005, licquia.org – response to Drepper by Jeff Licquia {{List of International Electrotechnical Commission standards Interfaces of the Linux kernel ISO standards Linux Linux APIs Linux Foundation