Linux Standard Base(LSB)は、複数の
Linuxディストリビューションが共同で進めているプロジェクトで、
Linux Foundationが活動を支援しています。その主な目的は、
Linux系
オペレーティングシステムの内部構造を標準化することにあります。LSBは、
POSIX仕様、Single UNIX Specificationといった既存のオープン標準を基盤とし、特定の分野においてはそれらを拡張することで、より包括的な標準化を目指しています。
LSBの目標
LSBの核となる目標は、
Linuxディストリビューション間での互換性を高め、それによって、特定のLSB準拠システム上でアプリケーションが確実に動作するように標準規格を策定し、推進することです。さらに、ソフトウェアベンダーが
Linux向けに製品を移植したり、新たに開発する際の手間やコストを削減することも目標としています。LSBに準拠した製品は認証を受けることができ、この認証プロセスは
The Open Groupが
Linux Foundationの協力を得て行っています。
LSBの規定内容
LSBでは、以下の要素が規定されています。
POSIX標準を拡張した標準ライブラリとコマンド/ユーティリティ群
ファイルシステムの階層構造のレイアウト
ランレベルの定義
CUPSのようなスプーラーやFoomaticなどのツールを含むプリンタシステム
X Window Systemのいくつかの拡張
バージョン履歴
LSBは、その開発の歴史の中で多くのバージョンアップを重ねてきました。初期のバージョンから最新バージョンに至るまで、多くの機能追加や変更が行われてきました。
1.0: 2001年6月に最初のバージョンがリリース。
1.1: 2002年1月、IA-32アーキテクチャ向けのハードウェア固有仕様が追加。
1.2: 2002年6月、
PowerPC 32ビット向けのハードウェア固有仕様が追加。認証は2002年7月から開始。
1.2.1: 2002年10月、Itanium向けのハードウェア固有仕様が追加。
1.3: 2002年12月、
Itanium, Enterprise System Architecture/390, z/Architecture向けのハードウェア固有仕様が追加。
2.0: 2004年9月、モジュール化され、LSB-Core、LSB-CXX、LSB-Graphics、LSB-I18n(未リリース)に分割。PowerPC 64ビット、AMD64向けのハードウェア固有仕様が追加。Single UNIX Specification (SUS) バージョン3との同期が行われた。
2.0.1: LSB 2.0のISO版。全ハードウェア固有部分がマージされた(ただし、LSB-Graphicsは汎用バージョンのみ)。
2.1: 2004年にリリース。
3.0: 2005年7月1日、
ライブラリAPIが更新。特にC++ ABIがgcc 3.4のものになった。中核部はISO
POSIX (2003)、Technical Corrigenda 1:2005に基づくよう更新。
3.1: 2005年10月31日、ISO/IEC 23360として提出。
3.2: 2008年1月28日、ISO/IEC 23360として提出。
4.0: 2008年11月11日、GNU Cライブラリ version 2.4、LSB 3.xとのバイナリ互換性、SDKによる容易化、グラフィックライブラリGTK+とCairoの新しいバージョンのサポート、Java(オプションモジュール)、LSB準拠のRPMパッケージ作成の容易化、Crypto API(ネットワークセキュリティサービスライブラリ)(オプションモジュール)が含まれた。
4.1: 2011年2月16日、
Javaの削除、マルチメディア (ALSA), セキュリティ (NSS), デスクトップ関連 (xdg-utils) のトライアルモジュールが必須サブモジュールとして奨励されるようになり、GTK+、
Cairoと
CUPSライブラリの更新と3つの新しいテストスイートの追加が行われた。
5.0: 2015年6月2日、以前のバージョンとの下位互換性を失う初のメジャーリリース(LSB3との互換性、一部の例外を除けばLSB3.1以降とほぼ完全な互換性がある)。FHS3.0での変更が組み込まれ、Qt3ライブラリの削除、LSBはLSB Core、LSB Desktop, LSB Languages, LSB Imaging, and LSB Trial Useにモジュール化された。
後方互換性
LSBは、バイナリレベルでの互換性を保ちつつ、ソフトウェアベンダーから独立した安定したABI(Application Binary Interface)を構築することを目指しています。後方互換性を確保するため、新しいバージョンは既存のインターフェースを追加する形でのみ行われ、削除は行われません。インターフェースの削除が必要な場合は、アプリケーション開発者に十分な時間を与えるため、インターフェース廃止ポリシーが適用されます。具体的には、インターフェースは「deprecated」とマークされた後、3つのメジャーバージョン、または約11年後にのみ削除されます。ただし、LSB 5.0は、例外的に後方互換性が破られた最初のメジャーバージョンとなっています。
批判点
LSBは、メンバー企業以外からの意見をあまり受け入れないとして批判されることがあります。特に、Debianプロジェクトからはその点が指摘されています。例えば、LSBはソフトウェアパッケージの配布形式としてLSB準拠のインストーラか、制限された形式のRPM形式を推奨していますが、Debianは独自に開発したdebパッケージ形式を長年利用しており、RPM形式よりも優れていると主張しています。
また、認証テストスイートについても、バグが多く不完全であるとの批判があります。GNU Cライブラリの開発者の一人であるUlrich Drepperは、LSBのテストスイートにバグがあると指摘し、ディストリビューション間の互換性を損なう可能性を指摘しています。さらに、ディストリビューションのテストだけではアプリケーションの互換問題は解決されず、アプリケーションのテストが不足しているという指摘もされています。
しかし、上記のような批判がある一方で、LSBは広く受け入れられており、Linuxディストリビューション間の互換性向上に一定の貢献をしていると評価されています。
関連項目
Filesystem Hierarchy Standard
CUPS
Linux
*
POSIX