通信用語の基礎知識 全国のICカードこれひとつ 戻る

MODULE_LICENSE
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:モジュール-ライセンス
外語:MODULE_LICENSE
品詞:名詞

Linuxローダブルカーネルモジュール(LKM)で使われているマクロの一つで、ライセンスを明示するもの。

目次
概要

Linux Kernel 2.4.10から導入された、各LKMに適用されているライセンスを埋め込むための機能。

include/linux/module.h で定義されている。

どのようなライセンスでも主張できるが、Linuxカーネルに適用されているGPLと背反するライセンスと判断された場合、LKMをロードする際にtaintedメッセージ(汚染メッセージ)が表示される。

特徴
由来

LKMはカーネルの二次的著作物であるとされているが、ライセンスは、オープンソースでもクローズドソースでも許容されている。

ライセンスがどうあれ、LKMはカーネルの一部として動作するためリスクが高いが、動作上の問題が生じた場合、クローズドソースでは第三者であるLinuxカーネル開発者は原因の追求ができない。

そこで、各LKMはMODULE_LICENSEマクロを用いて自身のライセンス名を埋め込むようにし、GPLに反するものであった場合は、taintedメッセージでユーザーにその旨を通知するようになった。

ライセンス名

ライセンス名は文字列で与えるため、自由度が高い。

include/linux/module.h のコメントでは、以下の様なものが例示されている。

以下はフリーではなく「汚染」扱いされる例。

Linuxant

Linuxantは、プロプライエタリなLKMを販売する企業である。

当然、その製品はプロプライエタリ・ソフトウェアであり、taintedメッセージが表示されてしまうので、この企業は次のようにしてこの問題を回避した。

MODULE_LICENSE("GPL\0for files in the \"GPL\" directory; for others, only LICENSE file applies");

意訳すると「"GPL" ディレクトリにはGPLのファイルがあり、それ以外は LICENSE ファイルが適用される」となる。

GPLのあとに\0つまりナル文字があるため、"GPL" と書かれていると誤認してしまったのである。しかも、そのGPLディレクトリとやらは空で、なにも入っていなかった。

オープンソースに貢献する気は、微塵もないらしい。あまりにも悪質であったため、大きな問題となった。

リンク
用語の所属
Linux
カーネルモジュール

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic