Linus Torvalds が、Linux カーネルに ZFS を実装する際の問題点について説明しました

議論中 テスト タスク スケジューラについては、ディスカッション参加者の XNUMX 人が、Linux カーネルの開発時に互換性を維持する必要性について述べているにもかかわらず、カーネルの最近の変更によりモジュールの正しい動作が妨げられたという例を挙げました。Linux上のZFS」。 ライナス・トーバルズ 答えたその原理」壊れません ユーザー「」は、カーネル自体だけでなく、ユーザー空間アプリケーションによって使用される外部カーネル インターフェイスも保持することを指します。 ただし、カーネルの主要な構成に受け入れられず、カーネル上で個別に開発されたサードパーティのアドオンはカバーされていません。その作成者は、自らの危険とリスクを負ってカーネルの変更を監視する必要があります。

ZFS on Linux プロジェクトに関しては、CDDL と GPLv2 ライセンスに互換性がないため、Linus は zfs モジュールの使用を推奨しませんでした。 現状では、Oracle のライセンス ポリシーにより、ZFS がメイン カーネルに組み込まれる可能性は非常に低いです。 カーネル機能へのアクセスを外部コードに変換する、ライセンスの非互換性を回避するために提案されたレイヤーは、疑わしい解決策である - 弁護士は続ける 主張する ラッパーを介して GPL カーネル関数を再エクスポートすると、GPL に基づいて配布する必要がある派生著作物が作成されるかどうかについて。

Linus が ZFS コードをメインカーネルに受け入れることに同意する唯一の選択肢は、主任弁護士、またはできればラリー・エリソン自身によって認定された、Oracle からの正式な許可を取得することです。 プログラミング・インタフェースの知的財産に関するOracleの積極的な方針を考慮すると、カーネルとZFSコードの間の層などの中間ソリューションは許可されません(たとえば、 トライアル Java API に関しては Google と協力してください)。 さらに、Linus は、ZFS を使用したいという要望は、技術的な利点ではなく、ファッションへの賛辞にすぎないと考えています。 Linus が調査したベンチマークは ZFS をサポートしておらず、完全なサポートがないため長期的な安定性は保証されません。

ZFS コードは無料の CDDL ライセンスの下で配布されており、GPLv2 とは互換性がありません。GPLv2 ライセンスと CDDL ライセンスの下でコードが混在しているため、Linux 上の ZFS を Linux カーネルのメイン ブランチに統合することはできません。は受け入れられません。 このライセンスの非互換性を回避するために、ZFS on Linux プロジェクトは、カーネルとは別に提供される個別にロードされたモジュールの形式で、CDDL ライセンスに基づいて製品全体を配布することを決定しました。

既製の ZFS モジュールを配布キットの一部として配布する可能性については、弁護士の間で議論の余地があります。 Software Freedom Conservancy (SFC) の弁護士 考えてディストリビューションでのバイナリ カーネル モジュールの配布は、GPL と組み合わされた製品を形成しますが、結果として得られる作業は GPL に基づいて配布される必要があります。 正規弁護士 不賛成 そして、コンポーネントがカーネルパッケージとは別の自己完結型モジュールとして提供される場合、zfs モジュールの配信は受け入れられると述べています。 Canonical は、ディストリビューションが NVIDIA ドライバーなどの独自のドライバーを提供するために長い間同様のアプローチを使用していると指摘しています。

もう一方の側は、プロプライエタリ ドライバのカーネル互換性の問題は、GPL ライセンスに基づいて配布される小さなレイヤを提供することで解決されると反論します (GPL ライセンスに基づくモジュールはカーネルにロードされ、カーネルにはすでにプロプライエタリ コンポーネントがロードされます)。 ZFS の場合、このようなレイヤーは Oracle からライセンス例外が提供されている場合にのみ準備できます。 Oracle Linux では、GPL との非互換性は、CDDL に基づく結合作業のライセンス要件を削除するライセンス例外を Oracle が提供することによって解決されますが、この例外は他のディストリビューションには適用されません。

回避策は、ディストリビューションでモジュールのソース コードのみを提供することです。これはバンドルにならず、XNUMX つの別々の製品の配信とみなされます。 Debian では、これに DKMS (Dynamic Kernel Module Support) システムが使用されます。このシステムでは、モジュールがソース コードで提供され、パッケージのインストール直後にユーザーのシステムにアセンブルされます。

出所: オープンネット.ru

コメントを追加します