建議阻止提供對Linux內核的GPL調用的訪問權限的驅動程序

徽標內核Linux,Tux

克里斯托夫·赫爾維格, 一位著名的Linux內核開發人員,曾經是Linux基金會技術指導委員會的成員,並在GPL訴訟中起訴了VMware。

他建議加強保護 反對鏈接 專有驅​​動程序 導出的 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 許可模塊的內核組件,即使該模塊之前已導入來自“gonly”的符號。

Hellwig 的補丁現在正試圖讓這變得困難。 導入專有符號的模塊被標記為專有且無權訪問 GPL 符號。 

這一更改是為了響應一系列已發布的補丁而提出的 由 Facebook 工程師實施了一個新的 netgpu 子系統,該子系統允許網卡和 GPU 之間直接進行數據交換(DMA 零拷貝),同時由 CPU 進行協議處理。

這將避免喬納森·萊蒙最初計劃的方法 對於你的補丁,會導致中間層的開發省略 GPL 符號 會困難得多,即使仍然存在很小的差距,正如您所指出的。

在他們目前正在進行的討論中 以及各種 Linux 內核開發人員 反向鎖定建議: 如果模塊導入 EXPORT_SYMBOL_GPL 符號,則該模塊導出的符號不得由未明確聲明 GPL 兼容性的模塊導入。

那些沒有模塊導入 EXPORT_SYMBOL_GPL 符號的模塊,所有導出的符號都應被視為 EXPORT_SYMBOL_GPL。

Christoph Helwig 寫道,他 100% 同意這個提議, 但 Linus Torvalds 不會錯過這一變化,因為它將使大多數內核子系統對專有驅動程序不可用,因為在開發驅動程序時,基本符號是在 GPL 下導出的

開發人員對僅通過這些驅動程序提供的 GPL 層實現專有 NVIDIA 驅動程序的可用性並不滿意。

為了回應批評, 該補丁的作者表示該子系統與 NVIDIA 無關 除其他外,它還可以為 AMD 和 Intel GPU 的軟件接口提供支持。

因此,在 AMDGPU、Intel i915 或 Nouveau 等免費的基於驅動程序的工作支持出現之前,netgpu 在內核中的推廣被認為是不可能的。

你必須記住過去,Linux內核社區有 實施了各種改變 誰,故意或作為副作用, 阻礙了專有模塊的開發 或與許可證不兼容。

終於 如果您想了解更多,您可以通過以下方式查看詳細信息: 到以下鏈接。

來源: https://lkml.org/


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   大衛 他說:

    也許將文章翻譯成英文而不是使用翻譯器會更好。 有很多部分讓我無法理解。