لینوس توروالدز مشکلات پیاده سازی ZFS برای هسته لینوکس را توضیح داد

در طول بحث آزمایشات زمانبندی کار، یکی از شرکت کنندگان در بحث مثالی ارائه کرد که علیرغم اظهارات در مورد نیاز به حفظ سازگاری هنگام توسعه هسته لینوکس، تغییرات اخیر در هسته باعث اختلال در عملکرد صحیح ماژول شده است.ZFS در لینوکس". لینوس توروالدز جواب دادکه اصل "نشکن کاربران" به حفظ رابط های هسته خارجی مورد استفاده توسط برنامه های فضای کاربر و همچنین خود هسته اشاره دارد. اما این افزونه‌های شخص ثالث را که به‌طور جداگانه توسعه داده شده‌اند روی هسته که در ترکیب اصلی هسته پذیرفته نشده‌اند، پوشش نمی‌دهد، و نویسندگان آن‌ها باید تغییرات در هسته را با خطر و خطر خود نظارت کنند.

در مورد پروژه ZFS در لینوکس، لینوس استفاده از ماژول zfs را به دلیل ناسازگاری مجوزهای CDDL و GPLv2 توصیه نکرد. وضعیت به این صورت است که به دلیل سیاست صدور مجوز اوراکل، احتمال اینکه ZFS بتواند به هسته اصلی وارد شود بسیار کم است. لایه‌های پیشنهادی برای دور زدن ناسازگاری مجوز، که دسترسی به توابع هسته را به کد خارجی ترجمه می‌کنند، راه‌حل مشکوکی هستند - وکلا ادامه می‌دهند. جر و بحث در مورد اینکه آیا صادرات مجدد هسته GPL از طریق wrapperها منجر به ایجاد یک کار مشتق می شود که باید تحت GPL توزیع شود.

تنها گزینه ای که لینوس با پذیرش کد ZFS در هسته اصلی موافقت می کند، دریافت مجوز رسمی از اوراکل است که توسط وکیل اصلی یا بهتر است بگوییم خود لری الیسون تأیید شده باشد. با توجه به سیاست تهاجمی Oracle در مورد مالکیت معنوی رابط های برنامه نویسی، راه حل های میانی، مانند لایه های بین هسته و کد ZFS، مجاز نیستند (به عنوان مثال، آزمایش با گوگل در مورد Java API). علاوه بر این ، لینوس تمایل به استفاده از ZFS را فقط ادای احترام به مد می داند و نه مزایای فنی. معیارهایی که لینوس بررسی کرد از ZFS پشتیبانی نمی کند و عدم پشتیبانی کامل ثبات طولانی مدت را تضمین نمی کند.

یادآوری می کنیم که کد ZFS تحت یک مجوز CDDL رایگان توزیع می شود که با GPLv2 ناسازگار است، که اجازه نمی دهد ZFS روی لینوکس در شاخه اصلی هسته لینوکس ادغام شود، زیرا کدهای ترکیبی تحت مجوزهای GPLv2 و CDDL غیر قابل قبول است برای دور زدن این ناسازگاری مجوز، پروژه ZFS در لینوکس تصمیم گرفت کل محصول را تحت مجوز CDDL در قالب یک ماژول بارگذاری شده جداگانه که جداگانه از هسته عرضه می شود، توزیع کند.

امکان توزیع یک ماژول آماده ZFS به عنوان بخشی از کیت های توزیع در بین وکلا بحث برانگیز است. وکلای حفاظت از آزادی نرم افزار (SFC) در نظر گرفتنکه تحویل یک ماژول هسته باینری در توزیع، یک محصول ترکیب شده با GPL را تشکیل می دهد که این الزام را دارد که کار حاصل تحت GPL توزیع شود. وکلای متعارف موافق نیستم و بیان کنید که تحویل یک ماژول zfs در صورتی قابل قبول است که کامپوننت به عنوان یک ماژول مستقل و جدا از بسته هسته عرضه شود. Canonical اشاره می‌کند که توزیع‌ها مدت‌هاست از رویکرد مشابهی برای تامین درایورهای اختصاصی مانند درایورهای NVIDIA استفاده می‌کنند.

طرف دیگر مخالفت می کند که مشکل سازگاری هسته در درایورهای اختصاصی با ارائه یک لایه کوچک توزیع شده تحت مجوز GPL حل می شود (یک ماژول تحت مجوز GPL در هسته بارگذاری می شود که قبلاً مؤلفه های اختصاصی را بارگذاری می کند). برای ZFS، چنین لایه ای تنها در صورتی می تواند آماده شود که استثنائات مجوز از Oracle ارائه شده باشد. در لینوکس اوراکل، ناسازگاری با GPL با ارائه یک استثنا مجوز که الزام مجوز کار ترکیبی تحت CDDL را حذف می‌کند، حل می‌شود، اما این استثنا برای سایر توزیع‌ها اعمال نمی‌شود.

یک راه حل این است که فقط کد منبع ماژول را در توزیع ارائه کنید، که منجر به بسته‌بندی نمی‌شود و به عنوان تحویل دو محصول جداگانه در نظر گرفته می‌شود. در دبیان از سیستم DKMS (پشتیبانی از ماژول هسته پویا) برای این کار استفاده می شود که در آن ماژول به صورت کد منبع عرضه شده و بلافاصله پس از نصب بسته بر روی سیستم کاربر مونتاژ می شود.

منبع: opennet.ru

اضافه کردن نظر