クリストフヘルウィッグ、 かつてLinuxFoundationの技術運営委員会のメンバーであり、VMwareに対するGPL訴訟で訴えられた著名なLinuxカーネル開発者。
彼は保護を強化することを提案しました 抱き合わせに対して 独自のドライバー エクスポートされたLinuxカーネルコンポーネントへ GPLの下でライセンスされたモジュールのみ。
制限を回避するには GPLシンボルをエクスポートするには、 独自のコントローラーメーカーはレイヤーモジュールを使用し、 そのコードはオープンソースであり、GPLv2ライセンスの下で配布されています。 しかし、関数は、所有者コントローラーのアクセスをAPIに渡すことに要約されます カーネルファイル。プロプライエタリコードから直接使用することは禁止されています。
そのような操作をブロックするには、 Christoph Helwigは、継承を保証するLinuxカーネル用のパッチを準備しました GPLシンボルのエクスポートに関連するフラグの。
初日から_GPLモジュールの解決にエラーがありました。
つまり、モジュールはGPLライセンスを取得していると主張し、_GPLエクスポートを使用すると同時に、非GPLモジュールシンボルにも依存することができます。 これは、_GPLエクスポートおよびその他の機能を使用する小さなシムモジュールを使用することにより、_GPLエクスポートの回避策として使用されます。
提案は、指標を継承することに要約されます TAINT_PROPRIETARY_MODULE このフラグを持つモジュールシンボルをインポートするすべてのモジュールで。
したがって、GPL中間層モジュールが非GPLモジュールからシンボルをインポートしようとすると、GPLモジュールはTAINT_PROPRIETARY_MODULEタグを継承し、モジュールが以前にインポートされた場合でも、GPLライセンスモジュールのみが使用できるカーネルコンポーネントにアクセスできなくなります。 「gplonly」からの記号。
Hellwigのパッチは現在これを困難にしようとしています。 独自のシンボルをインポートするモジュールは独自のマークが付けられ、GPLシンボルにアクセスできません。
この変更は、リリースされた一連のパッチに対応して提案されました 新しいnetgpuサブシステムを実装したFacebookエンジニアによるもので、CPUによるプロトコル処理を実行しながら、ネットワークカードとGPU間の直接データ交換(ゼロコピーDMA)を可能にします。
これは、ジョナサンレモンによって最初に計画された方法を回避します あなたのパッチのためにそしてGPLシンボルを省略するために中間層の開発をするでしょう はるかに難しい、示されているように、まだ小さなギャップがある場合でも。
彼らが現在持っている議論では さまざまなLinuxカーネル開発者も 逆ブロッキングが提案されました: モジュールがEXPORT_SYMBOL_GPLシンボルをインポートする場合、そのモジュールによってエクスポートされたシンボルは、GPL互換性を明示的に要求しないモジュールによってインポートされるべきではありません。
モジュールのないものはEXPORT_SYMBOL_GPLシンボルをインポートし、エクスポートされたすべてのシンボルはEXPORT_SYMBOL_GPLとして扱われる必要があります。
Christoph Helwigは、この提案に100%同意すると書いています。 しかし、Linus Torvaldsは、ドライバーを開発するときにベースシンボルがGPLの下でエクスポートされるため、ほとんどのカーネルサブシステムをプロプライエタリドライバーで使用できなくなるため、この変更を見逃すことはありません。
開発者は、これらのドライバーによって提供されるGPLレイヤーを介した独自のNVIDIAドライバーのみの実装の可用性に満足していませんでした。
批判に応えて、 パッチの作成者は、サブシステムがNVIDIAにリンクされていないことを示しました そのサポートは、とりわけ、AMDおよびIntelGPUのソフトウェアインターフェイスに提供できます。
その結果、カーネルでのnetgpuのプロモーションは、AMDGPU、Intel i915、Nouveauなどの無料ドライバーに基づく実用的なサポートが利用可能になるまで不可能と見なされていました。
あなたは過去にそれを覚えておく必要があります、Linuxカーネルコミュニティには さまざまな変更を実装しました それを故意にまたは副作用として、 プロプライエタリモジュールの開発を妨げてきた またはライセンスと互換性がありません。
最後に あなたがそれについてもっと知りたいなら、行くことで詳細を確認できます 次のリンクへ。
たぶん、翻訳者を使うよりも、記事を英語で書くほうがよいでしょう。 私には理解できない部分がたくさんあります。