Linus Torvalds Linux yadrosi uchun ZFSni amalga oshirish bilan bog'liq muammolarni tushuntirdi

Muhokama davomida sinovlari vazifalarni rejalashtiruvchisi, munozara ishtirokchilaridan biri misol keltirdi: Linux yadrosini ishlab chiqishda muvofiqlikni saqlash zarurligi haqidagi bayonotlarga qaramay, yadrodagi so'nggi o'zgarishlar modulning to'g'ri ishlashini buzdi "Linuxda ZFS". Linus Torvalds javob berdibu tamoyil "buzmang foydalanuvchilar" foydalanuvchi kosmik ilovalari tomonidan ishlatiladigan tashqi yadro interfeyslarini, shuningdek yadroning o'zini saqlashga ishora qiladi. Ammo u yadroning asosiy tarkibiga qabul qilinmagan, yadro ustidagi alohida ishlab chiqilgan uchinchi tomon qo'shimchalarini qamrab olmaydi, ularning mualliflari yadrodagi o'zgarishlarni o'z xavf-xatarlari va xavf-xatarlari bilan kuzatishi kerak.

ZFS on Linux loyihasiga kelsak, Linus CDDL va GPLv2 litsenziyalarining mos kelmasligi sababli zfs modulidan foydalanishni tavsiya etmadi. Vaziyat shundaki, Oracle litsenziyalash siyosati tufayli ZFS hech qachon asosiy yadroga kirish imkoniyati juda kichik. Yadro funktsiyalariga kirishni tashqi kodga o'tkazadigan litsenziyalash nomuvofiqligini chetlab o'tish uchun taklif qilingan qatlamlar shubhali echimdir - huquqshunoslar davom etmoqda bahslashmoq GPL yadro funktsiyalarini o'ramlar orqali qayta eksport qilish GPL bo'yicha tarqatilishi kerak bo'lgan lotin ishni yaratishga olib keladimi yoki yo'qmi haqida.

Linus ZFS kodini asosiy yadroga qabul qilishga rozi bo'ladigan yagona variant - Oracle'dan asosiy advokat tomonidan tasdiqlangan rasmiy ruxsat olish yoki undan ham yaxshisi, Larri Ellisonning o'zi. Oracle ning dasturlash interfeyslarining intellektual mulkiga nisbatan tajovuzkor siyosatini hisobga olgan holda yadro va ZFS kodi orasidagi qatlamlar kabi oraliq yechimlarga ruxsat berilmaydi (masalan, sud Java API bo'yicha Google bilan). Bundan tashqari, Linus ZFS-dan foydalanish istagini texnik afzalliklarga emas, balki modaga hurmat deb hisoblaydi. Linus tekshirgan mezonlar ZFS ni qo'llab-quvvatlamaydi va to'liq qo'llab-quvvatlanmasligi uzoq muddatli barqarorlikni kafolatlamaydi.

Eslatib o'tamiz, ZFS kodi bepul CDDL litsenziyasi ostida tarqatiladi, bu GPLv2 bilan mos kelmaydi, bu Linuxdagi ZFS-ni Linux yadrosining asosiy bo'limiga birlashtirishga imkon bermaydi, chunki GPLv2 va CDDL litsenziyalari ostida aralashtirilgan kod qabul qilib bo'lmaydi. Litsenziyalashning ushbu nomuvofiqligini chetlab o'tish uchun ZFS on Linux loyihasi butun mahsulotni CDDL litsenziyasi ostida yadrodan alohida ta'minlangan alohida yuklangan modul ko'rinishida tarqatishga qaror qildi.

Tarqatish to'plamlarining bir qismi sifatida tayyor ZFS modulini tarqatish imkoniyati advokatlar orasida bahsli. Software Freedom Conservancy (SFC) huquqshunoslari o'ylab ko'ringtarqatishda ikkilik yadro modulini yetkazib berish natijasida olingan ish GPL ostida taqsimlanishi talabi bilan GPL bilan birlashtirilgan mahsulotni tashkil qiladi. Kanonik huquqshunoslar rozi bo'lmang va agar komponent yadro paketidan alohida mustaqil modul sifatida ta'minlansa, zfs modulini yetkazib berish maqbul ekanligini bildiring. Canonical ta'kidlashicha, distribyutorlar uzoq vaqtdan beri NVIDIA drayverlari kabi xususiy drayverlarni etkazib berishda shunga o'xshash yondashuvdan foydalangan.

Boshqa tomon esa, xususiy drayverlarda yadro mosligi muammosi GPL litsenziyasi bo'yicha taqsimlangan kichik qatlamni etkazib berish orqali hal qilinishini ta'kidlaydi (GPL litsenziyasi ostidagi modul allaqachon xususiy komponentlarni yuklaydigan yadroga yuklangan). ZFS uchun bunday qatlam faqat Oracle'dan litsenziya istisnolari taqdim etilgan taqdirdagina tayyorlanishi mumkin. Oracle Linuxda GPL bilan nomuvofiqlik Oracle tomonidan hal qilinadi, bu CDDL ostida birlashtirilgan ishni litsenziyalash talabini olib tashlaydigan litsenziya istisnosini taqdim etadi, ammo bu istisno boshqa tarqatishlarga taalluqli emas.

Vaqtinchalik yechim tarqatishda modulning faqat manba kodini ta'minlashdan iborat bo'lib, bu to'plamga olib kelmaydi va ikkita alohida mahsulotni yetkazib berish sifatida qabul qilinadi. Buning uchun Debian-da DKMS (Dynamic Kernel Module Support) tizimi qo'llaniladi, unda modul manba kodida taqdim etiladi va paketni o'rnatgandan so'ng darhol foydalanuvchi tizimiga yig'iladi.

Manba: opennet.ru

a Izoh qo'shish