The Linux Standards Base (LSB) aims to standardize the implementation of Linux. And in so doing, introduce sustainability for all stakeholders - from providers of Linux distributions and Linux applications to consumers of the same. In principle then, the anecdotal conversation I shared above would be brief: "Our enterprise software is compliant with LSB 3.2."
As the LSB-style response implies, there is some concept of a reference implementation of Linux. LSB 3.2 is comprised of the following specifications:
- Core - Addresses the fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries depend.
- C++ - Supplements the Core Interfaces by providing system interfaces, libraries, and a runtime environment for applications built using the C++ programming language. These interfaces provide low-level support for the core constructs of the language, and implement the standard base C++ libraries.
- Desktop - Targets components found on an LSB conforming system.
- Scripting Languages - Addresses components for runtime languages which are found on an LSB conforming system.
- Printing - Addresses the multimedia components found on an LSB conforming system.
To make this more concrete, consider the LSB Scripting Languages specifications. In LSB 3.2, this translates to specific versions of Python and Perl that must be present. For example: "The default installed Python version shall be 2.4.2 or greater. Applications can depend on the 2.4 interfaces."
In addition to the mandatory specifications, LSB 3.2 includes trial-use specifications.
LSB 4.0 improves the breadth and depth of the five areas for mandatory specifications. In the case of the specifications for (scripting) languages, the Python and Perl specifications are being extended, while new specifications are being developed for Java and Mono, and potentially for PHP and Ruby. LSB 4.0 was anticipated for release in late 2008. And although progress is clearly being made, the release remains outstanding.
Although roadmaps beyond LSB 4 are not available, one might anticipate that working group activities may eventually put shape to such elaborations beyond what exists today.