Linus Torvalds menjelaskan masalah implementasi ZFS untuk kernel Linux

Selama diskusi tes penjadwal tugas, salah satu peserta diskusi memberikan contoh bahwa meskipun ada pernyataan tentang perlunya menjaga kompatibilitas saat mengembangkan kernel Linux, perubahan terkini pada kernel mengganggu pengoperasian modul yang benar "ZFS di Linux". Linus Torvalds dijawabbahwa prinsipnya"jangan membatalkan pengguna" mengacu pada pelestarian antarmuka kernel eksternal yang digunakan oleh aplikasi ruang pengguna serta kernel itu sendiri. Namun hal ini tidak mencakup add-on pihak ketiga yang dikembangkan secara terpisah di atas kernel yang tidak diterima ke dalam komposisi utama kernel, yang penulisnya harus memantau perubahan di kernel dengan risiko dan risiko mereka sendiri.

Sedangkan untuk proyek ZFS di Linux, Linus tidak merekomendasikan penggunaan modul zfs karena ketidakcocokan lisensi CDDL dan GPLv2. Situasinya adalah karena kebijakan lisensi Oracle, kemungkinan ZFS bisa masuk ke kernel utama sangat kecil. Lapisan yang diusulkan untuk melewati ketidakcocokan lisensi, yang menerjemahkan akses ke fungsi kernel ke kode eksternal, adalah solusi yang meragukan - lanjut pengacara membantah tentang apakah mengekspor ulang fungsi kernel GPL melalui wrapper akan menghasilkan karya turunan yang harus didistribusikan di bawah GPL.

Satu-satunya pilihan di mana Linus setuju untuk menerima kode ZFS ke dalam kernel utama adalah mendapatkan izin resmi dari Oracle, yang disertifikasi oleh pengacara utama, atau lebih baik lagi, Larry Ellison sendiri. Solusi perantara, seperti lapisan antara kernel dan kode ZFS, tidak diperbolehkan, mengingat kebijakan agresif Oracle mengenai kekayaan intelektual antarmuka pemrograman (misalnya, uji coba dengan Google mengenai Java API). Selain itu, Linus menganggap keinginan menggunakan ZFS hanya sebagai penghormatan terhadap fashion, bukan keunggulan teknis. Tolok ukur yang diperiksa Linus tidak mendukung ZFS, dan kurangnya dukungan penuh tidak menjamin stabilitas jangka panjang.

Izinkan kami mengingatkan Anda bahwa kode ZFS didistribusikan di bawah lisensi CDDL gratis, yang tidak kompatibel dengan GPLv2, yang tidak mengizinkan ZFS di Linux untuk diintegrasikan ke dalam cabang utama kernel Linux, karena mencampurkan kode di bawah lisensi GPLv2 dan CDDL tidak dapat diterima. Untuk menghindari ketidakcocokan lisensi ini, proyek ZFS di Linux memutuskan untuk mendistribusikan seluruh produk di bawah lisensi CDDL dalam bentuk modul yang dimuat secara terpisah yang disediakan secara terpisah dari kernel.

Kemungkinan mendistribusikan modul ZFS yang sudah jadi sebagai bagian dari kit distribusi masih kontroversial di kalangan pengacara. Pengacara dari Software Freedom Conservancy (SFC) pertimbangkanbahwa penyampaian modul kernel biner dalam distribusinya membentuk suatu produk yang digabungkan dengan GPL dengan persyaratan bahwa pekerjaan yang dihasilkan didistribusikan di bawah GPL. Pengacara Kanonik Tidak setuju dan nyatakan bahwa pengiriman modul zfs dapat diterima jika komponen tersebut disediakan sebagai modul mandiri, terpisah dari paket kernel. Canonical mencatat bahwa distribusi telah lama menggunakan pendekatan serupa untuk memasok driver berpemilik, seperti driver NVIDIA.

Pihak lain menyatakan bahwa masalah kompatibilitas kernel pada driver berpemilik diselesaikan dengan menyediakan lapisan kecil yang didistribusikan di bawah lisensi GPL (modul di bawah lisensi GPL dimuat ke dalam kernel, yang sudah memuat komponen berpemilik). Untuk ZFS, lapisan seperti itu hanya dapat disiapkan jika pengecualian lisensi disediakan dari Oracle. Di Oracle Linux, ketidakcocokan dengan GPL diselesaikan dengan Oracle memberikan pengecualian lisensi yang menghilangkan persyaratan untuk melisensikan karya gabungan di bawah CDDL, namun pengecualian ini tidak berlaku untuk distribusi lain.

Solusinya adalah dengan hanya menyediakan kode sumber modul dalam distribusi, yang tidak mengarah pada bundling dan dianggap sebagai pengiriman dua produk terpisah. Di Debian, sistem DKMS (Dukungan Modul Kernel Dinamis) digunakan untuk ini, di mana modul disediakan dalam kode sumber dan dirakit di sistem pengguna segera setelah menginstal paket.

Sumber: opennet.ru

Tambah komentar