LSBの最新リリースは、引き続き共通の未来を目指す

 Linux Standard Base(LSB)プロジェクトの目的は、ディストリビューション間でオペレーティングシステム実装に微妙な違いがあっても、そのためにアプリケーション動作に支障をきたすという事態をなくすことにある。先月リリースされたLSB 3.2もこの目的を追いつづけていて、互換性をさらに高めるとともに、マルチメディアとスクリプト言語に新しい標準を取り入れている。

 もともとLSBプロジェクトは、どのベンダにも偏らない動作環境、ライブラリ、フォーマット、その他のシステムソフトウェアを提供することを目指していた。つまり、ここで動作するプログラムなら、同じ標準のもとでコンパイルされたどのディストリビューションでも動作するということである。

 このプロジェクトは1998年に誕生し、2001年の中頃にLSB 1.0をリリースしている。2004年にバージョン2.0、2005年に3.0を出した。最新のバージョンは3.2であり、先月リリースされた。2005年には国際標準(ISO 23360)にもなっており、重要性と存在意義が高まった。今年中にはバージョン4.0が出ることになっていて、2010年まではこれが使われる。

lsb_logo.gif
LSBのロゴ

 現在、主要ディストリビューションのほとんどはLSBに準拠しており、それぞれの最新バージョンは認定済み(か認定中)であり、「LSB Certified」商標とロゴを使用する権利を得ている。具体名を記すと、アルファベット順にAsianux(Server 3.0)、Debian(Etch)、Mandriva(2007)、Novell(SUSE Linux Enterprise 10とopenSUSE 10.2。10.3はまだ)、Red Hat(Enterprise Linux 5)、Ubuntu(Dapper)、Xandros(Server 1.0)となる。もちろん、LSB 3.2が出たばかりとあって、どのディストリビューションも認定はバージョン3.1までだが、今後数ヶ月のうちに、最新標準のもとで認定(もしくは再認定)されるディストリビューションが増えていくだろう。主要ディストリビューションのうち前記リストに名前がないのは、FedoraとFreespire/Linspireである。

LSBの内容

 LSBの最新バージョンは、次の6つの機能分野に分かれている。

  • コアExecutable and Linking Format(ELF)、必須のベースライブラリとユーティリティライブラリ、実行環境アスペクト、必須コマンド、システム初期設定、ユーザとグループ、パッケージフォーマットとインストール。要するに、ユーザに基本環境とインストールツールを提供する。
  • デスクトップ:グラフィックとOpenGLのライブラリ、GTK+、Qt、PNGJPEGの各ライブラリ、フォント関連のテーマ(fontconfigFreeTypeなど)、一般的環境アスペクト。3.2リリースでは、試験的標準としてデスクトップ統合の概念がいくつか追加された。
  • C++:低レベルシステム情報に関する詳細(クラスとデータ表現など)と、必須ライブラリ。コードに標準外のライブラリが使われていないかどうかを調べるためのテストも含まれている。
  • 印刷(3.2の新機能):Common Unix Printing System(CUPS)と、新コマンドのfoomatic-ripおよびgs。この2つのコマンドにより、ほとんど(すべて?)のスプーラと接続でき、PostScriptとPDFの出力を使用できる。
  • ランタイム言語(3.2の新機能):PerlとPythonが対象。これらの言語に基づくアプリケーションには、標準の機能群とライブラリ群の使用が保証される。たとえば、PythonモジュールPerlモジュールの必須リストをチェックする。テストスイートは2つ(各言語に1つずつ)含まれている。

 「試験的標準」には、サウンドとデスクトップ統合の2分野がある。いまやほとんどのディストリビューションに含まれているAdvanced Linux Sound Architecture(ALSA)も、標準の一部になっている。Portland Projectのxdg-utilsコマンドも含まれていて、デスクトップメニュー項目やアイコンリソースのインストール/アンインストール、ファイルタイプの操作、ユーザ希望の電子メールツールによるメール送信、スクリーンセーバーの制御、その他をコマンドラインから実行できる。

ファイルシステムには別個の標準
 標準を語り、ディストリビューション間の相違を語るときは、Filesystem Hierarchy Standard(FHS)についても語らなければならない。FHSはファイルとディレクトリの配置に関するガイドラインである。多くのディストリビューションがHTMLページを/var/www/htmlに配置しているのに対し、FHS準拠のディストリビューションはこれを/srvに置く(/srv/wwwが多いが、そこまでは規定されていない)。FHSの維持管理には、Free Standards Group(FSG)(Linux Foundationを創設した団体)が当たっている。最初のバージョンが1993年に出ていて、最新バージョンが2004年に出た2.3であることからもわかるように、サポートは遅々としている。ただ、FHSの少なくとも一部はLSBにも取り入れられている。

 「試験的標準」は、将来的には本標準の一部になることを期待しつつ、現段階ではあくまでも試験的に含まれているにすぎないので、これから外れていてもLSB認定の対象からは外れない。コア、デスクトップ、C++の3分野には、一般的仕様に加えて、アーキテクチャ依存の規則(Intel 32および64ビットプラットフォーム用、PPC 32および64ビット用、システム390用、AMD 64ビット用)も含まれている。

 LSB標準には、認定に必要な多くのテストも含まれている。LSB認定を望むソフトウェアは、該当するテスト――Distribution Testing Kit(DTK)かApplication Testing Kit(ATK)――を実行し、そのテストで指摘された問題点を修正しなければならない。すべてのテストに合格したら、そのソフトウェアをLinux Foundationに登録して、最終審査を受ける。登録のためには、テスト結果を提出し、審査料金を払い(金額は、メンバーか否か、初めての認定か更新リリースかにより異なる。ディストリビューションで$250から$5,000)、商標ライセンス契約に署名しなければならない。Linux Foundationでは、テストに合格した製品には、整合性が証明されたことの印としてLSBの名前とロゴをぜひ使うよう勧めている。

 数年前、テストスイートに問題があって、本来合格すべきディストリビューションが不合格になり、欠陥のあるディストリビューションが合格するという事態が起こり、批判を招いた。この問題はすでに解決されている。

 LSB関連の文献としては、Web検索でも1件しかヒットしない。オンラインでもIBM Pressからも入手できるが、2004年に発行されたもので、やや古い。ただし、LSBの中心的メンバー数人によって書かれたものであり、内容は信頼できる(ちなみに、this 2020okの紹介では「Microsoft、Development、Visual Basic」に分類されていて、これは重大な誤りである)。最新の資料を望む方は、おそらく最新標準認定情報を参照したほうがよかろう。

Federico Kerekiはウルグアイ出身のシステムエンジニア。システム開発、コンサルタント業、大学での教育に20年以上の経験がある。

Linux.com 原文