Linus Torvalds 解釋了為 Linux 核心實作 ZFS 的問題

討論期間 測試 任務調度程序,一位討論參與者舉了一個例子,儘管聲明在開發 Linux 內核時需要保持兼容性,但最近內核的變化擾亂了模組的正確運行”Linux上的ZFS」。 萊納斯·托瓦爾茲 答案即原則“不要打破 用戶「是指保留用戶空間應用程式使用的外部核心介面以及核心本身。 但它不包括在核心上單獨開發的第三方附加元件,這些附加元件不被接受為核心的主要組成部分,其作者必須自行承擔風險和風險來監視核心中的變更。

對於Linux上的ZFS項目,由於CDDL和GPLv2授權不相容,Linus不建議使用zfs模組。 情況是,由於 Oracle 的授權政策,ZFS 能夠進入主核心的機會非常小。 提議繞過許可不相容性的層,將對內核功能的存取轉換為外部程式碼,是一個可疑的解決方案 - 律師繼續 爭論 關於透過包裝器重新導出 GPL 內核函數是否會導致創建必須在 GPL 下分發的衍生作品。

Linus 同意接受 ZFS 程式碼進入主核心的唯一選擇是獲得 Oracle 的官方許可,並由主要律師或更好的是 Larry Ellison 本人認證。 鑑於 Oracle 關於程式設計介面知識產權的積極政策(例如, 審判 與 Google 有關 Java API 的資訊)。 此外,Linus 認為使用 ZFS 的願望只是對時尚的致敬,而不是技術優勢。 Linus 檢查的基準測試不支援 ZFS,缺乏全面支援並不能保證長期穩定性。

讓我們提醒您,ZFS 程式碼是在免費的CDDL 許可證下分發的,該許可證與GPLv2 不相容,不允許Linux 上的ZFS 整合到Linux 核心的主分支中,因為在GPLv2 和CDDL 許可證下混合代碼是不可接受的。 為了避免這種授權不相容性,ZFS on Linux 專案決定在 CDDL 許可下以與核心分開提供的單獨載入模組的形式分發整個產品。

將現成的 ZFS 模組作為分發工具包的一部分進行分發的可能性在律師中存在爭議。 軟體自由保護協會 (SFC) 的律師 相信發行版中二進位核心模組的交付形成了與 GPL 結合的產品,並要求最終的工作在 GPL 下發行。 規範律師 不同意 並聲明如果該元件是作為獨立於核心包的獨立模組提供,則 zfs 模組的交付是可以接受的。 Canonical 指出,發行版長期以來一直使用類似的方法來提供專有驅動程序,例如 NVIDIA 驅動程式。

另一方反駁說,專有驅動程式中的核心相容性問題是透過提供一個在GPL 許可證下分發的小層來解決的(GPL 許可證下的模組被載入到核心中,核心已經載入了專有組件)。 對於 ZFS,只有在 Oracle 提供許可例外的情況下才能準備這樣的層。 在 Oracle Linux 中,透過 Oracle 提供授權例外解決了與 GPL 的不相容性,該例外消除了在 CDDL 下授權組合作品的要求,但此例外不適用於其他發行版。

解決方法是僅提供發行版中模組的源代碼,這不會導致捆綁,並被視為交付兩個單獨的產品。 在 Debian 中,DKMS(動態核心模組支援)系統用於此目的,其中模組以原始程式碼形式提供,並在安裝軟體包後立即在用戶系統上組裝。

來源: opennet.ru

添加評論