Ipinaliwanag ni Linus Torvalds ang mga problema sa pagpapatupad ng ZFS para sa Linux kernel

Sa panahon ng talakayan mga pagsubok task scheduler, isa sa mga kalahok sa talakayan ay nagbigay ng isang halimbawa na sa kabila ng mga pahayag tungkol sa pangangailangan na mapanatili ang pagiging tugma sa pagbuo ng Linux kernel, ang mga kamakailang pagbabago sa kernel ay nakagambala sa tamang operasyon ng module "ZFS sa Linux". Linus Torvalds sumagotna ang prinsipyo"Huwag basagin mga gumagamit" ay tumutukoy sa pagpepreserba sa mga panlabas na interface ng kernel na ginagamit ng mga application ng espasyo ng gumagamit pati na rin ang kernel mismo. Ngunit hindi ito sumasaklaw sa hiwalay na binuo na mga third-party na add-on sa kernel na hindi tinatanggap sa pangunahing komposisyon ng kernel, ang mga may-akda nito ay dapat subaybayan ang mga pagbabago sa kernel sa kanilang sariling peligro at panganib.

Tulad ng para sa proyekto ng ZFS sa Linux, hindi inirerekomenda ni Linus ang paggamit ng zfs module dahil sa hindi pagkakatugma ng mga lisensya ng CDDL at GPLv2. Ang sitwasyon ay dahil sa patakaran sa paglilisensya ng Oracle, napakaliit ng pagkakataon na makapasok ang ZFS sa pangunahing kernel. Ang mga layer na iminungkahi na i-bypass ang hindi pagkakatugma sa paglilisensya, na nagsasalin ng pag-access sa mga function ng kernel sa panlabas na code, ay isang kahina-hinalang solusyon - nagpapatuloy ang mga abogado makipagtalo tungkol sa kung ang muling pag-export ng GPL kernel function sa pamamagitan ng mga wrapper ay nagreresulta sa paglikha ng isang derivative na gawa na dapat ipamahagi sa ilalim ng GPL.

Ang tanging opsyon kung saan papayag si Linus na tanggapin ang ZFS code sa pangunahing kernel ay ang kumuha ng opisyal na pahintulot mula sa Oracle, na pinatunayan ng pangunahing abogado, o mas mabuti pa, si Larry Ellison mismo. Ang mga intermediate na solusyon, tulad ng mga layer sa pagitan ng kernel at ZFS code, ay hindi pinapayagan, dahil sa agresibong patakaran ng Oracle tungkol sa intelektwal na pag-aari ng mga interface ng programming (halimbawa, pagsubok sa Google patungkol sa Java API). Bilang karagdagan, isinasaalang-alang ni Linus ang pagnanais na gamitin ang ZFS ay isang pagkilala lamang sa fashion, at hindi mga teknikal na pakinabang. Ang mga benchmark na sinuri ni Linus ay hindi sumusuporta sa ZFS, at ang kakulangan ng buong suporta ay hindi ginagarantiyahan ang pangmatagalang katatagan.

Paalalahanan ka namin na ang ZFS code ay ipinamahagi sa ilalim ng isang libreng lisensya ng CDDL, na hindi tugma sa GPLv2, na hindi pinapayagan ang ZFS sa Linux na maisama sa pangunahing sangay ng Linux kernel, dahil ang paghahalo ng code sa ilalim ng mga lisensya ng GPLv2 at CDDL ay hindi katanggap-tanggap. Upang iwasan ang hindi pagkakatugma sa paglilisensya na ito, nagpasya ang proyekto ng ZFS sa Linux na ipamahagi ang buong produkto sa ilalim ng lisensya ng CDDL sa anyo ng isang hiwalay na na-load na module na ibinibigay nang hiwalay mula sa kernel.

Ang posibilidad ng pamamahagi ng isang handa na ZFS module bilang bahagi ng distribution kits ay kontrobersyal sa mga abogado. Mga Abogado mula sa Software Freedom Conservancy (SFC) isaalang-alangna ang paghahatid ng binary kernel module sa pamamahagi ay bumubuo ng isang produkto na pinagsama sa GPL na may pangangailangan na ang resultang trabaho ay ipamahagi sa ilalim ng GPL. Mga Kanonikal na Abogado ayaw pumayag at sabihin na ang paghahatid ng isang zfs module ay katanggap-tanggap kung ang bahagi ay ibinibigay bilang isang self-contained na module, na hiwalay sa kernel package. Ang mga tala ng Canonical na ang mga distribusyon ay matagal nang gumamit ng katulad na diskarte sa pagbibigay ng mga pagmamay-ari na driver, tulad ng mga driver ng NVIDIA.

Ang kabilang panig ay nagsasaalang-alang na ang problema ng kernel compatibility sa pagmamay-ari na mga driver ay nalutas sa pamamagitan ng pagbibigay ng isang maliit na layer na ipinamahagi sa ilalim ng lisensya ng GPL (isang module sa ilalim ng lisensya ng GPL ay na-load sa kernel, na naglo-load na ng mga proprietary na bahagi). Para sa ZFS, ang naturang layer ay maaari lamang ihanda kung ang mga pagbubukod sa lisensya ay ibinigay mula sa Oracle. Sa Oracle Linux, ang hindi pagkakatugma sa GPL ay nireresolba sa pamamagitan ng pagbibigay ng Oracle ng pagbubukod sa lisensya na nag-aalis ng pangangailangan sa lisensya ng pinagsamang trabaho sa ilalim ng CDDL, ngunit ang pagbubukod na ito ay hindi nalalapat sa iba pang mga distribusyon.

Ang isang solusyon ay ang pagbibigay lamang ng source code ng module sa pamamahagi, na hindi humahantong sa pag-bundle at itinuturing na paghahatid ng dalawang magkahiwalay na produkto. Sa Debian, ang DKMS (Dynamic Kernel Module Support) system ay ginagamit para dito, kung saan ang module ay ibinibigay sa source code at na-assemble sa system ng user kaagad pagkatapos i-install ang package.

Pinagmulan: opennet.ru

Magdagdag ng komento