通信用語の基礎知識 IPv4
戻る
参加者募集中

MODULE_LICENSE

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

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 のコメントでは、以下の様なものが例示されている。

  • "GPL" ‐ GPLv2またはそれ以降
  • "GPL v2" ‐ GPLv2
  • "GPL and additional rights" ‐ GPLと追加の権利
  • "Dual BSD/GPL" ‐ デュアルライセンスで、BSDライセンスまたはGPLv2
  • "Dual MIT/GPL" ‐ デュアルライセンスで、MITライセンスまたはGPLv2
  • "Dual MPL/GPL" ‐ デュアルライセンスで、MozillaライセンスまたはGPLv2

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

  • "Proprietary" ‐ プロプライエタリ・ソフトウェア (フリーではないもの)

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
カーネルモジュール

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.02 (21-Aug-2018)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club