Linux Standard Base

The Linux Standard Base (LSB) is 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. The LSB is based on the POSIX specification, the Single UNIX Specification (SUS), 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 Systems.

The LSB compliance may be certified for a product by a certification procedure.[1]

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.

LSB also specifies boot facilities, such as $local_fs, $network, which are used to indicate service dependencies in System V-style initialization scripts. A machine readable comment block at the top of a script provides the information necessary to determine at which point of the initialization process the script should be invoked. It is called the LSB header.[2]

The command lsb_release -a is available in many systems to get the LSB version details, or can be made available by installing an appropriate package, for example the redhat-lsb package in Red-Hat-flavored distributions such as Fedora, [3] or the lsb-release package in Debian-based distributions.

Lsb-logo
The LSB logo

Backward compatibility

Linux kernel interfaces
LSB aims to make userspace binaries portable

The LSB is designed to be binary-compatible and produce a stable application binary interface (ABI) for independent software vendors. 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 eleven years.[4]

LSB 5.0 is the first major release that breaks backward compatibility with earlier versions.[5]

Version history

  • 1.0: Initial release June 29, 2001.
  • 1.1: Released January 22, 2002. Added hardware-specific specifications (IA-32).
  • 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.
  • 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, AMD64)
    • Synchronized to Single UNIX Specification (SUS) version 3
  • 2.0.1: Released October 21, 2004, 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++ ABI is changed to the one used by gcc 3.4
    • The core specification is updated to ISO POSIX (2003)
    • Technical Corrigenda 1: 2005
  • 3.1: Released October 31, 2005. This version has been submitted as ISO/IEC 23360.
  • 3.2: Released January 28, 2008. This version has been submitted as ISO/IEC 23360.
  • 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 and Cairo graphical libraries
    • Java (optional module)
    • Simpler ways of creating LSB-compliant RPM packages
    • Crypto API (via the Network Security Services library) (optional module)
  • 4.1: Released February 16, 2011:[6]
    • Java removed[7]
    • "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
    • 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[8])
    • 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 standard

The LSB is registered as an official ISO standard.[9] 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 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.[10]

ISO/IEC 23360 and ISO/IEC TR 24715 can be freely downloaded from ISO website.[11]

Reception

While the LSB is a standard and without a competitor, it is followed only by few Linux distributions. For instance, only 21 distribution releases (versions) are certified for LSB version 4.0, notably Red Flag Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11, and Ubuntu 9.04 (jaunty);[12] even fewer are certified for version 4.1.

The LSB has been criticized[13][14][15][16] for not taking input from projects, most notably the Debian project, outside the sphere of its member companies.

Choice of the RPM package format

The LSB specifies that software packages should either be delivered as an LSB-compliant installer,[17] or (preferably) be delivered in a restricted form of the RPM Package Manager format.[18]

This choice of package format precludes the use of the many other, existing package formats not compatible with RPM. To address this, the standard does not dictate what 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 has included optional support for the 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 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,[19] 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."[19]

Debian strived to comply with the LSB, but with many limitations.[20] However, this effort ceased around July 2015 due to lack of interest and workforce inside the project.[21] In September 2015, the Debian project confirmed that while support for Filesystem Hierarchy Standard (FHS) would continue, support for LSB had been dropped.[22] Ubuntu followed Debian in November 2015.[23]

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.[24] 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.[24]

For the vendors considering LSB certifications in their portability efforts, the Linux Foundation sponsors a tool that analyzes and provides guidance on symbols and libraries that go beyond the LSB.[25]

See also

References

  1. ^ "Certifying an Application to the LSB". Linux Foundation. 2008. Archived from the original on July 15, 2009. Retrieved April 26, 2010.
  2. ^ "Facility Names". Linux Standard Base Core Specification 3.1. 2005.
  3. ^ "Package redhat-lsb". fedoraproject.org. Retrieved August 15, 2015.
  4. ^ "LSB Roadmap". Linux Foundation. 2008. Retrieved 2010-04-26.
  5. ^ "LSB 5.0 Release Notes". linuxfoundation.org. Archived from the original on July 8, 2017. Retrieved 3 June 2015.
  6. ^ djwm (10 March 2011). "Java removed from Linux Standard Base 4.1". Archived from the original on December 7, 2013.
  7. ^ "Java removed from Linux Standard Base 4.1". h-online.com. March 10, 2011. Retrieved August 15, 2015.
  8. ^ "LSB 5.0 Release Notes: Qt 3 Removed". linuxfoundation.org. Retrieved 3 June 2015.
  9. ^ "ISO/IEC 23360-1:2006 - Linux Standard Base (LSB) core specification 3.1 -- Part 1: Generic specification". Retrieved 2011-10-15.
  10. ^ "ISO/IEC TR 24715:2006 - Information technology -- Programming languages, their environments and system software interfaces -- Technical Report on the Conflicts between the ISO/IEC 9945 (POSIX) and the Linux Standard Base (ISO/IEC 23360)". Retrieved 2011-10-15.
  11. ^ "ISO Publicly Available Standards". Retrieved 2011-10-15.
  12. ^ Certified Products Product Directory on linuxbase.org (2015-01-12)
  13. ^ "bugs.debian.org".
  14. ^ "linuxfoundation.org".
  15. ^ "openacs.org".
  16. ^ "osnews.com".
  17. ^ "Chapter 22. Software Installation 22.1. Introduction". Linux Standard Base Core Specification 3.1. 2005.
  18. ^ "Chapter 22. Software Installation 22.3. Package Script Restrictions". Linux Standard Base Core Specification 3.1. 2005.
  19. ^ a b "Debian -- Details of package lsb in lenny (stable) -- Linux Standard Base 3.2 support package". Debian Project. 2008-08-18. Retrieved 2010-04-26.
  20. ^ "Debian LSB". Debian Project. Retrieved 2010-04-26.
  21. ^ "Debian LSB ML discussion". Debian Project. Retrieved 2015-09-12.
  22. ^ "Debian dropping the Linux Standard Base". lwn.net.
  23. ^ "lsb 9.20150917ubuntu1 source package in Ubuntu".
  24. ^ a b Drepper, Ulrich (2005-09-17). "Do you still think the LSB has some value?". Retrieved 2010-04-26.
  25. ^ "All About the Linux Application Checker". Linux Foundation. 2008. Retrieved 2010-04-26.

External links

Media

Alien (file converter)

Alien is a computer program that converts between different Linux package formats, created by Joey Hess and presently maintained by Kyle Barry.

Ar (Unix)

The archiver, also known simply as ar, is a Unix utility that maintains groups of files as a single archive file. Today, ar is generally used only to create and update static library files that the link editor or linker uses and for generating .deb packages for the Debian family; it can be used to create archives for any purpose, but has been largely replaced by tar for purposes other than static libraries. An implementation of ar is included as one of the GNU Binutils.In the Linux Standard Base, ar has been deprecated and is expected to disappear in a future release of that Standard. The rationale provided was that "the LSB does not include software development utilities nor does it specify .o and .a file formats."

Bharat Operating System Solutions

Bharat Operating System Solutions (BOSS GNU/Linux) is an Indian Linux distribution derived from Debian. BOSS Linux is officially released in four editions: BOSS Desktop (for personal use, home and office), EduBOSS (for schools and education community), BOSS Advanced Server and BOSS MOOL. The latest stable version 7.0 ("Drishti"), was released on 28 August 2018.

It is developed by Centre for Development of Advanced Computing (C-DAC) in order for enhancing and gain benefit from the usage of Free and Open Source Software throughout India. BOSS Linux is a key deliverable of National Resource Centre for Free and Open Source Software (NRC-FOSS). It has enhanced desktop environment integrated with Indian language support and other software.

The software has been endorsed by the Government of India for adoption and implementation on a national scale. BOSS Linux is an "LSB certified" Linux distribution. The software has been certified by the Linux Foundation for compliance with the Linux Standard Base (LSB) standard. It supports Intel and AMD IA-32/x86-64 architecture till version 6. From version 7, the development shifted to x86-64 architecture only.

BOSS Linux has upgraded from entry-level server to advanced server. BOSS Linux advanced server has unique features such as web server, proxy server, database server, mail server, network server, file and print server, SMS server, LDAP server. BOSS Linux advanced server comprises administration tools such as webmin which is a web-based interface, Gadmin, PHP myadmin, PHP LDAP admin, PG admin. The accessibility of BOSS Linux will have a constructive impact on the digital divide in India as more people can now have access to software in their local language to use the Internet and other information and communications technology (ICT) facilities. Community Information centers (CICs) and internet cafes will also benefit from BOSS Linux as this software can be utilized to power these outlets and is affordable and easy to install, use and support.

Bruce Perens

Bruce Perens (born around 1958) is an American computer programmer and advocate in the free software movement. He created The Open Source Definition and published the first formal announcement and manifesto of open source. He co-founded the Open Source Initiative (OSI) with Eric S. Raymond.In 2005, Perens represented Open Source at the United Nations World Summit on the Information Society, at the invitation of the United Nations Development Programme. He has appeared before national legislatures and is often quoted in the press, advocating for open source and the reform of national and international technology policy.

Perens is also an amateur radio operator, with call sign K6BP. He promotes open radio communications standards and open-source hardware.In 2016 Perens, along with Boalt Hall (Berkeley Law) professor Lothar Determann, co-authored "Open Cars" which appeared in the Berkeley Technology Law Journal.

In 2018 Perens founded the Open Research Institute (ORI), a non-profit research and development organization to address technologies involving Open Source, Open Hardware, Open Standards, Open Content, and Open Access to Research. ORI facilitate worldwide collaboration in the development of technology that would otherwise be restricted under national laws like ITAR and EAR.

DCC Alliance

The DCC Alliance (DCCA) was an industry association designed to promote a common subset of the Debian GNU/Linux operating system that multiple companies within the consortium could distribute. It was founded by Ian Murdock in 2005 and was wound up in 2007.

IBM Chiphopper

Chiphopper is a component of the IBM eServer products specifically tailored to the Linux operating system. IBM developed the server products in a collaborative effort with Red Hat and Novell of SUSE Linux ownership at the time. The official name of the product suite is IBM Systems Application Advantage for Linux. Chiphopper is a set of system support and testing tools designed to assist development and porting of Linux x86 applications onto other IBM systems and middleware platforms. The Chiphopper offering helps developers whose applications run on x86 Linux systems by providing tools to scrub their C/C++ code for portability prior to porting to Power ISA and System z systems. Source hardware platforms for 32- and 64-bit applications are x86, EM64T, and AMD systems running Linux Standard Base (LSB) 3.x certified Linux distributions.Then-vice president of IBM Linux Scott Handy described the introduction of the project as "Customers came to IBM saying, 'I really want to put Linux on this new OpenPower server or on a partition on pSeries, but the application I want is only available on Linux on x86.' They loved our approach, but they felt like their hands were tied behind their backs because the apps weren't there-not all of the time, but some of the time. Multiplatform Linux is already a reality with our customers and our ISVs, and the introduction of our Chiphopper offering will accelerate that process. Linux on x86 is already huge, and the Chiphopper offering will not only increase that market opportunity, but also expand it to additional platforms faster than what was possible."

Ian Murdock

Ian Ashley Murdock (28 April 1973 – 28 December 2015) was an American software engineer, known for being the founder of the Debian project and Progeny Linux Systems, a commercial Linux company.

Inspur K-UX

Inspur K-UX is a Linux distribution based on Red Hat Enterprise Linux produced by Inspur, a Chinese multinational company specializing in information technology. Inspur K-UX 2.0 and 3.0 for x86-64 are officially certified as UNIX systems by The Open Group.

Linux Assigned Names and Numbers Authority

The Linux Assigned Names and Numbers Authority (LANANA) is a central registry of names and numbers used within Linux. It was created in 2000 by H. Peter Anvin. As of 2013, it along with Filesystem Hierarchy Standard matters had moved under the Linux Standard Base, which itself operates under Linux Foundation's auspices per Russ Herrold.

Linux Foundation

The Linux Foundation (LF) is a non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its commercial adoption. It also hosts and promotes the collaborative development of open source software projects.It began in 2000 under the Open Source Development Labs (OSDL) and became the organization it is today when OSDL merged with the Free Standards Group (FSG). The Linux Foundation sponsors the work of Linux creator Linus Torvalds and lead maintainer Greg Kroah-Hartman and is supported by members such as AT&T, Cisco, Fujitsu, Hitachi, Huawei, IBM, Intel, Microsoft, NEC, Oracle, Qualcomm, Samsung, and VMware, as well as developers from around the world.

In recent years, the Linux Foundation has expanded its services through events, training and certification, and open source projects. Projects hosted at the Linux Foundation include Open Network Automation Platform (ONAP), Hyperledger, Cloud Native Computing Foundation, Cloud Foundry Foundation, Xen Project, and many others.

Mktemp

mktemp is a command available in many Unix-like operating systems that creates a temporary file or directory. Originally released in 1997 as part of OpenBSD 2.1, a separate implementation exists as a part of GNU Coreutils.There used to be a similar named C library function, which is now deprecated for being unsafe, and has safer alternatives.

Nobody (username)

In many Unix variants, "nobody" is the conventional name of a user account which owns no files, is in no privileged groups, and has no abilities except those which every other user has. Some systems also define an equivalent group "nogroup".

Pax (Unix)

pax is an archiving utility created by POSIX and defined by the POSIX.1-2001 standard. Rather than sort out the incompatible options that have crept up between tar and cpio, along with their implementations across various versions of UNIX, the IEEE designed a new archive utility that could support various archive formats, including a new format which is basically tar with additional extended attributes. The name "pax" is an acronym for portable archive exchange. The command invocation and structure is somewhat a unification of both tar and cpio.

RPM Package Manager

RPM Package Manager (RPM) (originally Red Hat Package Manager; now a recursive acronym) is a free and open-source package management system. The name RPM refers to the following: the .rpm file format, files in the .rpm file format, software packaged in such files, and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.

Even though it was created for use in Red Hat Linux, RPM is now used in many Linux distributions. It has also been ported to some other operating systems, such as Novell NetWare (as of version 6.5 SP3), IBM's AIX (as of version 4), CentOS, Fedora (operating system) created jointly between Red Hat and the Fedora community, and Oracle Linux. All versions or variants of the these Linux operating systems use the RPM Package Manager.

An RPM package can contain arbitrary set of files. Most RPM files are “binary RPMs” (or BRPMs) containing the compiled version of some software. There are also “source RPMs” (or SRPMs) containing the source code used to build a binary package. These have an appropriate tag in the file header that distinguishes them from normal (B)RPMs, causing them to be extracted to /usr/src on installation. SRPMs customarily carry the file extension “.src.rpm” (.spm on file systems limited to 3 extension characters, e.g. old DOS FAT).

Runlevel

A runlevel is a mode of operation in the computer operating systems that implement Unix System V-style initialization. Conventionally, seven runlevels exist, numbered from zero to six. S is sometimes used as a synonym for one of the levels. Only one runlevel is executed on startup; run levels are not executed one after another (i.e. only runlevel 2, 3, or 4 is executed, not more of them sequentially or in any other order).

A runlevel defines the state of the machine after boot. Different runlevels are typically assigned (not necessarily in any particular order) to the single-user mode, multi-user mode without network services started, multi-user mode with network services started, system shutdown, and system reboot system states. The exact setup of these configurations varies between operating systems and Linux distributions. For example, runlevel 4 might be a multi-user GUI no-server configuration on one distribution, and nothing on another. Runlevels commonly follow the general patterns described in this article; however, some distributions employ certain specific configurations.

In standard practice, when a computer enters runlevel zero, it halts, and when it enters runlevel six, it reboots. The intermediate runlevels (1–5) differ in terms of which drives are mounted and which network services are started. Default runlevels are typically 3, 4, or 5. Lower runlevels are useful for maintenance or emergency repairs, since they usually don't offer any network services at all. The particular details of runlevel configuration differ widely among operating systems, and also among system administrators.

In various Linux distributions, the traditional /etc/rc script used in the Version 7 Unix was first replaced by runlevels and then by systemd states on most major distributions.

Sunwah Linux

RAYS Linux (previously Sun Wah Linux) was a Chinese Debian-based Linux distribution.

United Linux

United Linux was an attempt by a consortium of Linux distributors to create a common base distribution for enterprise use, so as to minimize duplication of engineering effort and form an effective competitor to Red Hat. The founding members of United Linux were SUSE, Turbolinux, Conectiva (now merged with MandrakeSoft to form Mandriva) and Caldera International (later renamed to The SCO Group). The consortium was announced on May 30, 2002. The end of the project was announced on January 22, 2004.

Unix-like

A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like application is one that behaves like the corresponding Unix command or shell. There is no standard for defining the term, and some difference of opinion is possible as to the degree to which a given operating system or application is "Unix-like".

The term can include free and open-source operating systems inspired by Bell Labs' Unix or designed to emulate its features, commercial and proprietary work-alikes, and even versions based on the licensed UNIX source code (which may be sufficiently "Unix-like" to pass certification and bear the "UNIX" trademark).

Linux kernel
Controversies
Distributions
Organizations
Adoption
Media
Android
Arch
Debian
Fedora
Gentoo
Slackware
Mandriva
Other
ISO standards by standard number
1–9999
10000–19999
20000+
IEC standards
ISO/IEC standards
Related

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.