An operating system’s success is inextricably linked with the number and quality of applications that run on top of it. Linux and its variances between distributions, however, present ISVs and individual developers with a unique set of challenges: different distributions of Linux make use of different versions of libraries, important files stored in different locations, and so on. If an ISV wants to reach a global Linux audience, they must support more than one distribution of Linux. These challenges and variances make it difficult–and costly–for ISVs to target the Linux platform.
It is somewhat of an irony: choice is what drives Linux adoption, yet this very choice can make things difficult for application developers. The costs and resources involved in targeting multiple Linux distributions for application development is not something that can be taken lightly.
The Linux Standard Base was created to solve these challenges and lower the overall costs of supporting the Linux platform. By reducing the differences between individual Linux distributions, the LSB greatly reduces the costs involved with porting applications to different distributions, as well as lowers the cost and effort involved in after-market support of those applications.
The Linux Foundation and the Linux Standard Base were created to enable ISVs to cost effectively target the Linux platform, reducing their porting, support, and testing costs while helping them address a global market for their applications.
The LSB solution not only makes life easier for individual application developers and independent software vendors (ISVs), it also makes a huge positive impact on the entire Linux ecosystem.
Beyond the reduction of porting costs, the existence of the LSB solution means that Linux will also avoid the fate of the UNIX operating systems, where commercial interests caused the fragmentation of a single UNIX OS into several UNIX variants that, unlike Linux distributions, are very incompatible with each other.
There are other solid benefits of the LSB:
Clearly, the LSB solution is a positive force in the Linux environment. But what, exactly, is it? Understanding the components of the LSB is key to understanding all the things it can do for developers.
The LSB is a core standard for the Linux operating system that encourages interoperability between applications and the platform. It includes a written binary interface specification, a set of test suites for both distributions and applications writing to the standard, and a sample implementation for testing purposes.
Currently, the distribution vendors are the enablers of the LSB standard. Without their participation, the standard cannot achieve any success. And without their participation in the creation of the LSB, their support for it would be unlikely. Luckily all major distribution vendors are certified to the LSB.
In order for the LSB to be successful, the Linux Foundation has built an organization that makes it as easy as possible for distribution vendors to come to consensus while balancing the needs of other constituents to have a timely and useful standard.
Community support is key, too. The open source community represents an amalgamation of software projects that are integrated into a single computing solution. It is important that the maintainers of those projects are aware of existing computing standards such as the LSB so they can work in a cooperative fashion to accelerate the adoption of their technology. All of these cooperative elements—distribution vendors, community developers, and application developers, work together to make the LSB happen. But what are the technical elements of the LSB? What's under the hood?
The key component of the LSB is the written binary interface specification, which informs developers of Linux applications the standard ways to build and configure their applications. Specifically, the specification lists:
Built from a foundation of existing standards, LSB delineates the binary interface between an application and a runtime environment. Existing standards that the LSB draws from include the Single UNIX Specification (SUS). the Standard CABI, and the System V ABI. Other standards referenced include PAM, X11, and the desktop standards hosted on freedesktop.org. LSB formalizes the framework for interface availability within individual libraries and itemizes the data structures and constants associated with each interface. These components include shared libraries required by developers (including C++), file system hierarchies (defining where files are located in the system), specifications for the behavior of public interfaces, application packaging details, application behavior pre- and post-installation, and so on. The LSB provides backward compatibility at both the source and binary level beginning with LSB 3.0. In other words, applications that target version X.Y of the LSB (where X.Y >= 3.0) will run on distributions certified to or compliant with LSB version X.Y //and newer//. For example, applications that target LSB 3.0 will run not only on LSB 3.0 certified/compliant distributions but also LSB 3.1, LSB 3.2, LSB 4.0 etc. certified/compliant distributions. To achieve backward compatibility, each subsequent version is purely additive--in other words, interfaces are only added, not removed (our [[https://www.linuxfoundation.org/en/Deprecation_Policy programmers looking to program on Linux.
The LSB gives application developers tools and a standardized foundation on which to take advantage of the global Linux opportunity. The Linux Developer Network is designed to leverage the full potential of the Linux Standard Base to assist application vendors and developers to maximize application portability across LSB-certified distributions.