Linuxディストリビューションの旧標準
Linux Standard Base ( LSB ) は、 Linux Foundation の組織構造の下で複数の Linux ディストリビューション [ which? ]が共同で立ち上げたプロジェクトで、 Filesystem Hierarchy Standard を含むソフトウェア システム構造の標準化を目的としていました。LSB は、 POSIX 仕様、 Single UNIX Specification (SUS)、およびその他のオープン スタンダードに基づいていました が、特定の領域でそれらを拡張しました。
LSBによると:
LSBの目標は、Linuxディストリビューション間の互換性を向上させ、ソフトウェアアプリケーションを バイナリ形式であっても、 準拠したあらゆるシステムで実行できるようにするオープンスタンダードの開発と推進です。さらに、LSBは、Linuxオペレーティングシステムへの移植および製品開発を行うソフトウェアベンダーの募集活動の調整を支援します。
LSB準拠は、認証手続きによって製品に対して認証される場合があります。 [1]
LSBは、(を中心とする) 標準 ライブラリ、 POSIX ld-lsb.so標準を拡張する多数のコマンドとユーティリティ、 ファイルシステム階層 のレイアウト 、 実行レベル、 CUPS などの スプーラや Foomatic などのツール を含む印刷システム、 および X Window Systemのいくつかの拡張機能を規定しました。また、 System V スタイルの初期化スクリプト でサービスの依存関係を示すために使用される $local_fs 、 $network などのブート機能も規定しました。 [2] スクリプトの先頭にある機械可読なコメントブロックは、初期化プロセスのどの時点でスクリプトを呼び出す必要があるかを決定するために必要な情報を提供しました。これはLSBヘッダーと呼ばれていました。 [3]
このコマンドは lsb_release -a多くのシステムでLSBのバージョン詳細を取得するために使用でき、また適切なパッケージをインストールすることによっても使用可能になります。例えば、 Fedora など の Red-Hat redhat-lsb系ディストリビューションのパッケージ [4] や、 Debianベースのディストリビューションのパッケージなどです。
lsb-release
この標準は2015年に更新が停止され、現在のLinuxディストリビューションはこれに準拠しておらず、提供もされていません。ただし、この lsb_releaseコマンドはまだ利用できる場合があります。 [ 要出典 ] 2023年2月7日、LSBの元メンテナーは「LSBプロジェクトは実質的に放棄されている」と書いています。 [5]
ターミナルでの LSB 出力の例 (Debian バージョン 11)
下位互換性
LSBは ユーザー空間 バイナリを移植可能にすることを目指している
LSB はバイナリ互換となるように設計されており、 独立系ソフトウェアベンダー向けに安定した アプリケーション バイナリ インターフェイス (ABI)を生み出しました 。
後方互換性を確保するため、LSBはインターフェース廃止ポリシーを採用しました。これは、LSBからインターフェースが削除された場合にアプリケーション開発者が十分な対応時間を確保できるようにするためです。削除されるインターフェースは、まずLSBリリースで廃止予定としてマークされます。その後、そのインターフェースは、そのリリースおよび少なくともその後2つのLSBリリースでは引き続きサポートされます。これにより、開発者はLSBのすべてのインターフェースを一定期間利用することができ、変更への対応も計画することができました。 [6]
LSB 5.0はQt 3を削除したため、以前のバージョンとの 下位互換性 がなくなった最初のメジャーリリースでした 。Qt 3ライブラリに動的にリンクされたアプリケーションは、すべてのLSB 5.0準拠のディストリビューションで動作することが保証されていませんでした。 [7]
バージョン履歴
1.0: 2001 年 6 月 29 日の初回リリース。
1.1: 2002 年 1 月 22 日リリース。ハードウェア固有の仕様 ( IA-32 ) が追加されました。
1.2: 2002年6月28日リリース。ハードウェア固有の仕様( PowerPC 32ビット )を追加しました。認証は2002年7月に開始されました。
1.2.1: 2002 年 10 月にリリースされました。Itanium が追加されまし た 。
1.3: 2002 年 12 月 17 日にリリースされました。ハードウェア固有の仕様 (Itanium、Enterprise System Architecture/390、z/Architecture) が追加されました。
2.0: 2004年8月31日リリース
2.0.1: 2004 年 10 月 21 日にリリースされたLSB 2.0 の ISO バージョンで、すべてのハードウェア アーキテクチャの仕様が含まれています (LSB-Graphics は例外で、汎用バージョンのみが利用可能です)。
2.1: 2005 年 3 月 11 日にリリースされました。
3.0: 2005年7月1日リリース。その他のライブラリの変更点:
3.1: 2005 年 10 月 31 日にリリースされました。このバージョンは、ISO/IEC 23360:2006 として提出されました。
3.2: 2008 年 1 月 28 日にリリースされました。このバージョンは、ISO/IEC 23360:2006 として提出されました。
4.0: 2008 年 11 月 11 日にリリースされました。このバージョンには次の機能が含まれています。
4.1: 2011年2月16日リリース: [8]
Javaが削除されました [9]
LSB 4.0の「試用」モジュール(マルチメディア( ALSA )、セキュリティ(NSS)、デスクトップその他( xdg-utils )をカバーする)が必須サブモジュールとして昇格されました。
GTK+ 、Cairo、 CUPS ライブラリを 更新しました
3つの新しいテストスイートが追加されました
5.0: 2015年6月2日リリース。このバージョンはISO/IEC 23360:2021として提出されました。
GNU C ライブラリ バージョン 2.10 (psiginfo 用)
以前のバージョンとの下位互換性がなくなった最初のメジャーリリース(LSB 3.0と互換性があり、LSB 3.1以降とはほとんど互換性があるが、いくつかの例外がある [10] )
FHS 3.0 で行われた変更を組み込む
Qt 3ライブラリは削除されました
進化したモジュール戦略。LSBは、LSB Core、LSB Desktop、LSB Languages、LSB Imaging、およびLSB Trial Useにモジュール化されています。
ISO/IEC規格
LSBバージョン3.1は、 ISO / IECの 公式国際規格として登録されています。主な内容は次のとおりです。
ISO/IEC 23360-1:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート1: 汎用仕様 [11]
ISO/IEC 23360-2:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート2: IA-32 アーキテクチャの仕様
ISO/IEC 23360-3:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート3: IA-64 アーキテクチャの仕様
ISO/IEC 23360-4:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート4: AMD64 アーキテクチャの仕様
ISO/IEC 23360-5:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート5: PPC32 アーキテクチャの仕様
ISO/IEC 23360-6:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート 6: PPC64 アーキテクチャの仕様
ISO/IEC 23360-7:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート7: S390 アーキテクチャの仕様
ISO/IEC 23360-8:2006 Linux Standard Base (LSB) コア仕様 3.1 — パート8: S390X アーキテクチャの仕様
また、ISO/IEC TR 24715:2006では、ISO/IEC 23360(Linux Standard Base 3.1仕様)とISO/IEC 9945:2003(POSIX)国際標準との間の矛盾点が特定されています。 [12]
LSB バージョン 5.0 は、公式の ISO / IEC 国際規格としても登録されています。
ISO/IEC 23360-1-1:2021 Linux標準ベース(LSB)—パート1-1:共通定義
ISO/IEC 23360-1-2:2021 Linux Standard Base (LSB) — パート1-2: コア仕様の汎用部分
ISO/IEC 23360-1-3:2021 Linux Standard Base (LSB) — パート1-3: デスクトップ仕様の汎用パート
ISO/IEC 23360-1-4:2021 Linux標準ベース(LSB)—パート1-4:言語仕様
ISO/IEC 23360-1-5:2021 Linux標準ベース(LSB)—パート1-5:イメージング仕様
ISO/IEC TS 23360-1-6:2021 Linux Standard Base (LSB) — パート1-6: グラフィックスおよびGtk3仕様
ISO/IEC 23360-2-2:2021 Linux Standard Base (LSB) — パート2-2: X86-32アーキテクチャのコア仕様
ISO/IEC 23360-2-3:2021 Linux Standard Base (LSB) — パート2-3: X86-32アーキテクチャのデスクトップ仕様
ISO/IEC 23360-3-2:2021 Linux Standard Base (LSB) — パート3-2: IA64 (Itanium™) アーキテクチャのコア仕様
ISO/IEC 23360-3-3:2021 Linux Standard Base (LSB) — パート3-3: IA64 (Itanium TM) アーキテクチャのデスクトップ仕様
ISO/IEC 23360-4-2:2021 Linux Standard Base (LSB) — パート4-2: AMD64 (X86-64) アーキテクチャのコア仕様
ISO/IEC 23360-4-3:2021 Linux Standard Base (LSB) — パート4-3: AMD64 (X86-64) アーキテクチャのデスクトップ仕様
ISO/IEC 23360-5-2:2021 Linux Standard Base (LSB) — パート5-2: PowerPC 32アーキテクチャのコア仕様
ISO/IEC 23360-5-3:2021 Linux Standard Base (LSB) — パート5-3: PowerPC 32アーキテクチャ向けデスクトップ仕様
ISO/IEC 23360-6-2:2021 Linux Standard Base (LSB) — パート6-2: PowerPC 64アーキテクチャのコア仕様
ISO/IEC 23360-6-3:2021 Linux Standard Base (LSB) — パート6-3: PowerPC 64アーキテクチャ向けデスクトップ仕様
ISO/IEC 23360-7-2:2021 Linux Standard Base (LSB) — パート7-2: S390アーキテクチャのコア仕様
ISO/IEC 23360-7-3:2021 Linux Standard Base (LSB) — パート7-3: S390アーキテクチャのデスクトップ仕様
ISO/IEC 23360-8-2:2021 Linux Standard Base (LSB) — パート8-2: S390Xアーキテクチャのコア仕様
ISO/IEC 23360-8-3:2021 Linux Standard Base (LSB) — パート8-3: S390Xアーキテクチャのデスクトップ仕様
ISO/IEC 23360およびISO/IEC TR 24715は、ISOのウェブサイトから無料でダウンロードできます。 [13]
受付
LSBは標準であり競合相手がいなかったため、それに追随する Linuxディストリビューションは ごくわずかでした。例えば、LSBバージョン4.0で認定されたディストリビューションリリース(バージョン)はわずか21で、特に Red Flag Linux Desktop 6.0、 Red Hat Enterprise Linux 6.0、 SUSE Linux Enterprise 11、 Ubuntu 9.04(Jaunty Jackalope) が有名です。 [14] バージョン4.1で認定されたディストリビューションはさらに少数でした。
LSBは 、メンバー企業の領域外にある
プロジェクト、特に Debianプロジェクトからの意見を取り入れていないとして批判された [15] [16] [17] [18] 。
LSBは、ソフトウェアパッケージはLSB準拠のインストーラーとして配布されるか、 [19] (できれば) RPMパッケージマネージャー 形式の制限された形式で配布されることを規定しました 。 [20]
このパッケージ形式の選択により、RPMと互換性のない既存のパッケージ形式の使用は不可能になりました。この問題に対処するため、標準規格では、システムが自身のパッケージにどのパッケージ形式を使用しなければならないかは規定されておらず、サードパーティのディストリビューターが提供するパッケージを準拠システムにインストールするためにはRPMをサポートしなければならないと規定されているだけです。
Debianの制限
Debianは初期からLSBのオプションサポートを組み込んでおり、バージョン1.1の「woody」(3.0、2002年7月19日)、「sarge」(3.1、2005年6月6日)で2.0、「etch」(4.0、2007年4月8日)で3.1、「lenny」(5.0、2009年2月14日)で3.2、「wheezy」(7、2013年5月4日)で4.1となっています。LSB準拠の外部RPMパッケージを使用するには、 エンドユーザーは Debianの Alien プログラムを使用してネイティブパッケージ形式に変換し、インストールする必要があります。
LSB仕様のRPMフォーマットには、RPM機能の一部が制限されていました。これは、Alienなどのパッケージ変換プログラムで.debに変換できないRPM機能の使用をブロックするためであり、またその逆も同様です。それぞれのフォーマットには、他方にはない機能があるためです。実際には、すべてのLinuxバイナリパッケージが必ずしもLSB準拠であるわけではなく、ほとんどのパッケージは.rpmと.deb間で変換できましたが、この操作は一部のパッケージに限定されていました。
Alienを使用することで、Debianは事実上LSBと互換性がありましたが、 lsbパッケージの説明によると [21] 、「パッケージの存在は、DebianがLinux Standard Baseに完全に準拠していると考えていることを意味するものではなく、DebianがLSBに準拠しているという声明として解釈されるべきではありません。」 [21]
DebianはLSBに準拠しようと努力しましたが、多くの制限がありました。 [22] しかし、プロジェクト内の関心と人材の不足により、この取り組みは2015年7月頃に中止されました。 [23] 2015年9月、Debianプロジェクトは ファイルシステム階層標準 (FHS)のサポートは継続する一方で、LSBのサポートは中止されたことを確認しました。 [24] Ubuntuは2015年11月にDebianに続きました。 [25]
コンプライアンステストスイートの品質
さらに、コンプライアンステストスイートはバグが多く不完全であると批判されました。特に2005年にウルリッヒ・ドレッパーは、LSBのテストが不十分で、一部のディストリビューションがバグのあるテストを動作させるために誤った動作を実装し、他のディストリビューションがテストの免除を申請して取得している場合、LSB認定ディストリビューション間で互換性がない可能性があると批判しました。 [26] 彼はまた、アプリケーションテストの欠如を非難し、ディストリビューションのみをテストしても、実装定義の動作に依存するアプリケーションの問題は解決できないと指摘しました。 [26]
移植性向上のためにLSB認証を検討しているベンダーのために、 Linux Foundationは LSBを超えるシンボルやライブラリを分析し、ガイダンスを提供するツールを後援しました。 [27]
参照
参考文献
^ 「LSBへのアプリケーションの認定」 Linux Foundation 、2008年。2009年7月15日時点のオリジナルよりアーカイブ 。 2010年 4月26日 閲覧。
^ 「ファシリティ名」 Linux標準ベースコア仕様3.1 .2005年。
^ 「initスクリプトのコメント規則」 Linux標準ベースコア仕様3.1 .2005年。
^ “Package redhat-lsb”. fedoraproject.org . 2015年9月1日時点のオリジナルよりアーカイブ 。 2015年 8月15日 閲覧。
^ “Re: このメーリングリストのアーカイブ”. lsb-discuss メーリングリスト . 2023年2月7日. オリジナルの2023年2月7日時点のアーカイブ。
^ 「LSB ロードマップ」 Linux Foundation 2008年。2011年7月23日時点のオリジナルよりアーカイブ 。 2010年 4月26日 閲覧。
^ “LSB 5.0 リリースノート”. linuxfoundation.org . 2017年7月8日時点のオリジナルよりアーカイブ 。 2015年 6月3日 閲覧。
^ djwm (2011年3月10日). “Linux Standard Base 4.1からJavaが削除されました”. 2013年12月7日時点のオリジナルよりアーカイブ。
^ 「Linux Standard Base 4.1からJavaが削除されました」 h-online.com 2011年3月10日 2015年 8月15日 閲覧 。
^ 「LSB 5.0リリースノート:Qt 3の削除」 linuxfoundation.org . 2015年 6月3日 閲覧 。
^ ISO/IEC 23360-1:2006 - Linux Standard Base (LSB) コア仕様 3.1 -- パート1: 汎用仕様 . 2011年 10月15日 閲覧 。
^ ISO/IEC TR 24715:2006 - 情報技術 - プログラミング言語、その環境、およびシステムソフトウェアインターフェース - ISO/IEC 9945 (POSIX) と Linux 標準ベース (ISO/IEC 23360) の競合に関する技術報告書 。 2011年 10月15日 閲覧 。
^ 「ISO公開標準」 。 2011年 10月15日 閲覧 。
^ linuxbase.org の認定製品製品ディレクトリ (2015 年 1 月 12 日)
^ "bugs.debian.org".
^ "linuxfoundation.org". [ 永久リンク切れ ]
^ "openacs.org".
^ "osnews.com".
^ 「第22章 ソフトウェアのインストール 22.1. はじめに」 Linux標準ベースコア仕様3.1 . 2005年。
^ 「第22章 ソフトウェアのインストール 22.3. パッケージスクリプトの制限」 Linux標準ベースコア仕様3.1 .2005年。
^ ab 「Debian -- lenny (stable) のパッケージ lsb の詳細 -- Linux Standard Base 3.2 サポートパッケージ」 Debian プロジェクト 2008年8月18日. 2010年 4月26日 閲覧 。
^ 「Debian LSB」 Debianプロジェクト。 2010年 4月26日 閲覧 。
^ 「Debian LSB MLディスカッション」 Debianプロジェクト。 2015年 9月12日 閲覧 。
^ 「DebianがLinux標準ベースを廃止」 LWN.net 。
^ 「Ubuntuのlsb 9.20150917ubuntu1ソースパッケージ」2015年11月19日。
^ ab Drepper, Ulrich (2005年9月17日). 「LSBにはまだ価値があると思いますか?」 . 2010年 4月26日 閲覧 。
^ 「Linuxアプリケーションチェッカーのすべて」 Linux Foundation 、2008年。 2010年 4月26日 閲覧 。
外部リンク
Linux 標準ベース仕様アーカイブ、linuxfoundation.org
Linux 標準ベース (LSB)、wiki.linuxfoundation.org
Open Linux VERification (OLVER) プロジェクト、linuxtesting.org
lsb パッケージを検索、pkgs.org
lsb、pkgs.org
Launchpad の lsb、launchpad.net - バグレポート
メディア:
1998 年、debian.org の「LSB の拡大に新たなベンダーが参加」では、歴史的に興味深い、当時のチームの内訳と関係者について説明しています。
Linuxベンダー4社がLSB実装に合意、2004年、slashdot.org
LSBには価値がある、2005年、licquia.org – ジェフ・リキアによるドレッパーへの返答