ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
Linuxのローダブルカーネルモジュール(LKM)で使われているマクロの一つで、ライセンスを明示するもの。
LKMはカーネルの二次的著作物であるとされているが、ライセンスは、オープンソースでもクローズドソースでも許容されている。
ライセンスがどうあれ、LKMはカーネルの一部として動作するためリスクが高いが、動作上の問題が生じた場合、クローズドソースでは第三者であるLinuxカーネル開発者は原因の追求ができない。
そこで、各LKMはMODULE_LICENSEマクロを用いて自身のライセンス名を埋め込むようにし、GPLに反するものであった場合は、taintedメッセージでユーザーにその旨を通知するようになった。
ライセンス名は文字列で与えるため、自由度が高い。
include/linux/module.h のコメントでは、以下の様なものが例示されている。
以下はフリーではなく「汚染」扱いされる例。
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ディレクトリとやらは空で、なにも入っていなかった。
オープンソースに貢献する気は、微塵もないらしい。あまりにも悪質であったため、大きな問題となった。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます