أوضح Linus Torvalds المشاكل المتعلقة بتنفيذ ZFS لنواة Linux

خلال المناقشة اختبار جدولة المهام، أعطى أحد المشاركين في المناقشة مثالاً على أنه على الرغم من التصريحات حول الحاجة إلى الحفاظ على التوافق عند تطوير نواة Linux، فإن التغييرات الأخيرة في النواة عطلت التشغيل الصحيح للوحدة "ZFS على نظام Linux". لينوس تورفالدس إجابةأن المبدأ "لا تنكسر المستخدمين" يشير إلى الحفاظ على واجهات kernel الخارجية التي تستخدمها تطبيقات مساحة المستخدم بالإضافة إلى kernel نفسه. ولكنه لا يغطي الإضافات التي تم تطويرها بشكل منفصل من قبل جهات خارجية على النواة والتي لم يتم قبولها في التكوين الرئيسي للنواة، والتي يجب على مؤلفيها مراقبة التغييرات في النواة على مسؤوليتهم الخاصة.

أما بالنسبة لمشروع ZFS على Linux، لم ينصح Linus باستخدام وحدة zfs بسبب عدم توافق تراخيص CDDL وGPLv2. الوضع هو أنه نظرًا لسياسة الترخيص الخاصة بشركة Oracle، فإن فرص تمكن ZFS من الدخول إلى النواة الرئيسية ضئيلة جدًا. الطبقات المقترحة لتجاوز عدم توافق الترخيص، والتي تترجم الوصول إلى وظائف kernel إلى كود خارجي، هي حل مشكوك فيه - يواصل المحامون تجادل حول ما إذا كانت إعادة تصدير وظائف نواة GPL من خلال الأغلفة تؤدي إلى إنشاء عمل مشتق يجب توزيعه بموجب GPL.

الخيار الوحيد الذي سيوافق فيه Linus على قبول كود ZFS في النواة الرئيسية هو الحصول على إذن رسمي من Oracle، مصدق عليه من المحامي الرئيسي، أو الأفضل من ذلك، Larry Ellison نفسه. لا يُسمح بالحلول الوسيطة، مثل الطبقات بين kernel ورمز ZFS، نظرًا لسياسة Oracle الصارمة فيما يتعلق بالملكية الفكرية لواجهات البرمجة (على سبيل المثال، محاكمة مع Google بخصوص Java API). بالإضافة إلى ذلك، يعتبر لينوس الرغبة في استخدام ZFS مجرد تكريم للأزياء، وليس المزايا التقنية. المعايير التي فحصها لينوس لا تدعم ZFS، وعدم وجود الدعم الكامل لا يضمن الاستقرار على المدى الطويل.

دعنا نذكرك أن كود ZFS يتم توزيعه بموجب ترخيص CDDL مجاني، وهو غير متوافق مع GPLv2، والذي لا يسمح بدمج ZFS على Linux في الفرع الرئيسي لنواة Linux، حيث يتم خلط الكود تحت تراخيص GPLv2 وCDDL غير مقبول. للتحايل على عدم توافق الترخيص هذا، قرر مشروع ZFS على Linux توزيع المنتج بأكمله بموجب ترخيص CDDL في شكل وحدة محملة بشكل منفصل يتم توفيرها بشكل منفصل عن النواة.

إن إمكانية توزيع وحدة ZFS الجاهزة كجزء من مجموعات التوزيع أمر مثير للجدل بين المحامين. محامون من منظمة حماية حرية البرمجيات (SFC) نظرأن تسليم وحدة النواة الثنائية في التوزيع يشكل منتجًا مدمجًا مع GPL مع متطلبات توزيع العمل الناتج بموجب GPL. المحامين الكنسيين لا توافق واذكر أن تسليم وحدة zfs مقبول إذا تم توفير المكون كوحدة قائمة بذاتها، منفصلة عن حزمة kernel. تشير Canonical إلى أن التوزيعات استخدمت منذ فترة طويلة أسلوبًا مشابهًا لتوفير برامج التشغيل الخاصة، مثل برامج تشغيل NVIDIA.

ويعارض الجانب الآخر أن مشكلة توافق النواة في برامج التشغيل الاحتكارية يتم حلها عن طريق توفير طبقة صغيرة موزعة بموجب ترخيص GPL (يتم تحميل وحدة نمطية بموجب ترخيص GPL في النواة، والتي تقوم بالفعل بتحميل المكونات الاحتكارية). بالنسبة إلى ZFS، لا يمكن إعداد هذه الطبقة إلا إذا تم توفير استثناءات الترخيص من Oracle. في Oracle Linux، يتم حل عدم التوافق مع GPL من خلال توفير Oracle استثناء ترخيص يزيل متطلبات ترخيص العمل المدمج بموجب CDDL، لكن هذا الاستثناء لا ينطبق على التوزيعات الأخرى.

يتمثل الحل البديل في توفير التعليمات البرمجية المصدر للوحدة النمطية في التوزيع فقط، وهو ما لا يؤدي إلى التجميع ويعتبر بمثابة تسليم منتجين منفصلين. في دبيان، يتم استخدام نظام DKMS (دعم وحدة النواة الديناميكية) لهذا الغرض، حيث يتم توفير الوحدة في كود المصدر ويتم تجميعها على نظام المستخدم مباشرة بعد تثبيت الحزمة.

المصدر: opennet.ru

إضافة تعليق