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ディレクトリとやらは空で、なにも入っていなかった。
オープンソースに貢献する気は、微塵もないらしい。あまりにも悪質であったため、大きな問題となった。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |