Лінус Торвальдс пояснив, що проблеми реалізації ZFS для ядра Linux

Під час обговорення тестів планувальника завдань, один із учасників дискусії навів приклад того, що незважаючи на заяви про необхідність збереження сумісності при розробці ядра Linux, нещодавні зміни в ядрі порушили коректну роботу модуля.ZFS на Linux“. Лінус Торвальдс відповів, що принцип «не ламати користувачів» відноситься до збереження зовнішніх інтерфейсів ядра, що використовуються програмами в просторі користувача, а також самого ядра. Але він не охоплює окремі сторонні надрядки над ядром, не прийняті в основний склад ядра, автори яких на свій страх і ризик самі повинні відстежувати зміни в ядрі.

Що стосується проекту ZFS on Linux, то Лінус не рекомендував користуватися модулем zfs через несумісність ліцензій CDDL і GPLv2. Ситуація така, що через ліцензійну політику компанії Oracle шанси, що ZFS колись зможе увійти в основний склад ядра дуже малі. Пропоновані для обходу ліцензійної несумісності прошарки, що транслюють доступ до функцій ядра для зовнішнього коду, є сумнівним рішенням – юристи продовжують сперечатися про те, чи наводить реекспортування GPL-функцій ядра через обгортки до створення похідної роботи, яку потрібно постачати під ліцензією GPL.

Єдиним варіантом, при якому Лінус погодився прийняти код ZFS в основне ядро, називається отримання від компанії Oracle офіційного дозволу, завіреного головним юристом, а краще самим Ларрі Еллісоном. Проміжні рішення, такі як прошарки між ядром і кодом ZFS, неприпустимі, з урахуванням агресивної політики Oracle щодо інтелектуальної власності на програмні інтерфейси (наприклад, розгляд з Google з приводу Java API). Крім того, Лінус вважає прагнення використовувати ZFS лише даниною моді, а не технічними перевагами. Тести продуктивності, які вивчав Лінус, не свідчать на користь ZFS, а відсутність повноцінного супроводу не гарантує стабільності у довгостроковій перспективі.

Нагадаємо, що код ZFS поширюється під вільною ліцензією CDDL, яка несумісна з GPLv2, що не дозволяє досягти інтеграції ZFS on Linux до складу основної гілки ядра Linux, оскільки змішування коду під ліцензіями GPLv2 і CDDL неприпустимо. Для обходу цієї ліцензійної несумісності проектом «ZFS on Linux» було вирішено поширювати продукт повністю під ліцензією CDDL у вигляді модуля, що окремо завантажується, що поставляється окремо від ядра.

Можливість розповсюдження готового модуля ZFS у складі дистрибутивів викликає суперечки у юристів. Юристи організації Software Freedom Conservancy (SFC) вважають, Що постачання в дистрибутиві бінарного модуля ядра утворює комбінований з GPL продукт з вимогою поширення підсумкової роботи під GPL. Юристи компанії Canonical не згодні і стверджують, що постачання модуля zfs допускається, якщо компонент поставляється у вигляді модуля самодостатнього, окремо від пакета з ядром. Canonical зазначає, що дистрибутиви давно використовують такий підхід для постачання пропрієтарних драйверів, таких як драйвери NVIDIA.

Інша сторона парирує, що проблема сумісності з ядром у пропрієтарних драйверах вирішується поставкою невеликого прошарку, що розповсюджується під ліцензією GPL (в ядро ​​вантажиться модуль під ліцензією GPL, який вже завантажує пропрієтарні компоненти). Для ZFS подібний прошарок можна підготувати лише у разі надання ліцензійних винятків від компанії Oracle. У Oracle Linux несумісність з GPL вирішується наданням компанією Oracle ліцензійного виключення, що знімає вимогу щодо ліцензування комбінованої роботи під CDDL, але це виняток не діє інших дистрибутивів.

Обхідним маневром є постачання в дистрибутиві лише вихідних текстів модуля, що не призводить до зв'язування та розглядається як постачання двох окремих продуктів. У Debian для цього задіяна система DKMS (Dynamic Kernel Module Support), коли модуль поставляється у вихідних текстах і збирається на системі користувача, безпосередньо після установки пакета.

Джерело: opennet.ru

Додати коментар або відгук