Լինուս Տորվալդսը բացատրեց Linux միջուկի համար ZFS-ի ներդրման հետ կապված խնդիրները

Քննարկման ժամանակ թեստեր առաջադրանքների ժամանակացույցը, քննարկման մասնակիցներից մեկը օրինակ բերեց, որ չնայած Linux միջուկը մշակելիս համատեղելիությունը պահպանելու անհրաժեշտության մասին հայտարարություններին, միջուկի վերջին փոփոխությունները խաթարեցին մոդուլի ճիշտ աշխատանքը»:ZFS- ը Linux- ում«. Լինուս Տորվալդս պատասխանեցոր սկզբունքը «մի կոտրեք օգտվողները« վերաբերում է արտաքին միջուկի ինտերֆեյսների պահպանմանը, որոնք օգտագործվում են օգտագործողի տարածության հավելվածների կողմից, ինչպես նաև հենց միջուկի կողմից: Բայց այն չի ընդգրկում միջուկի վրա առանձին մշակված երրորդ կողմի հավելումները, որոնք ընդունված չեն միջուկի հիմնական կազմի մեջ, որոնց հեղինակները պետք է վերահսկեն միջուկի փոփոխությունները՝ իրենց վտանգի և ռիսկի դեպքում:

Ինչ վերաբերում է ZFS on Linux նախագծին, ապա Լինուսը խորհուրդ չի տվել օգտագործել zfs մոդուլը CDDL և GPLv2 լիցենզիաների անհամատեղելիության պատճառով։ Իրավիճակն այնպիսին է, որ Oracle-ի արտոնագրման քաղաքականության պատճառով հավանականությունը, որ ZFS-ը երբևէ կկարողանա մտնել հիմնական միջուկ, շատ փոքր է: Լիցենզավորման անհամատեղելիությունը շրջանցելու համար առաջարկվող շերտերը, որոնք միջուկի գործառույթների հասանելիությունը թարգմանում են արտաքին կոդի, կասկածելի լուծում են. վիճել այն մասին, թե արդյոք GPL միջուկի վերաարտահանումը փաթաթիչների միջոցով հանգեցնում է ածանցյալ աշխատանքի ստեղծմանը, որը պետք է բաշխվի GPL-ի ներքո:

Միակ տարբերակը, որով Լինուսը կհամաձայնի ընդունել ZFS կոդը հիմնական միջուկում, Oracle-ից պաշտոնական թույլտվություն ստանալն է՝ վավերացված գլխավոր իրավաբանի կամ ավելի լավը՝ անձամբ Լարի Էլիսոնի կողմից: Միջանկյալ լուծումները, ինչպիսիք են միջուկի և ZFS կոդի միջև ընկած շերտերը, չեն թույլատրվում՝ հաշվի առնելով Oracle-ի ագրեսիվ քաղաքականությունը ծրագրավորման ինտերֆեյսների մտավոր սեփականության վերաբերյալ (օրինակ. դատավարություն Google-ի հետ Java API-ի հետ կապված): Բացի այդ, Լինուսը ZFS-ի օգտագործման ցանկությունը համարում է միայն տուրք նորաձևությանը, այլ ոչ թե տեխնիկական առավելություններին։ Հենանիշները, որոնք ուսումնասիրել է Լինուսը, չեն աջակցում ZFS-ին, և լիարժեք աջակցության բացակայությունը չի երաշխավորում երկարաժամկետ կայունություն:

Հիշեցնենք, որ ZFS կոդը բաշխվում է անվճար CDDL լիցենզիայի ներքո, որն անհամատեղելի է GPLv2-ի հետ, ինչը թույլ չի տալիս Linux-ի ZFS-ին ինտեգրվել Linux միջուկի հիմնական ճյուղին, քանի որ կոդ խառնվում է GPLv2 և CDDL լիցենզիաների ներքո: անընդունելի է. Լիցենզավորման այս անհամատեղելիությունը շրջանցելու համար ZFS Linux-ի նախագիծը որոշեց ամբողջ արտադրանքը տարածել CDDL լիցենզիայի ներքո՝ առանձին բեռնված մոդուլի տեսքով, որը մատակարարվում է միջուկից առանձին:

Պատրաստի ZFS մոդուլը որպես բաշխման փաթեթների մաս տարածելու հնարավորությունը հակասական է իրավաբանների շրջանում: Իրավաբաններ Software Freedom Conservancy-ից (SFC) հաշվի առնելոր երկուական միջուկի մոդուլի առաքումը բաշխման մեջ ձևավորում է GPL-ի հետ համակցված արտադրանք՝ արդյունքում ստացված աշխատանքը GPL-ի ներքո բաշխվելու պահանջով: Կանոնական իրավաբաններ համաձայն չեն և նշեք, որ zfs մոդուլի առաքումն ընդունելի է, եթե բաղադրիչը մատակարարվում է որպես ինքնուրույն մոդուլ՝ միջուկի փաթեթից առանձին: Canonical-ը նշում է, որ բաշխումները վաղուց օգտագործում են նմանատիպ մոտեցում՝ մատակարարելու սեփական վարորդներ, ինչպիսիք են NVIDIA-ի դրայվերները:

Մյուս կողմը հակադարձում է, որ ֆիրմային դրայվերներում միջուկի համատեղելիության խնդիրը լուծվում է՝ մատակարարելով GPL լիցենզիայի տակ բաշխված փոքր շերտ (GPL լիցենզիայի տակ գտնվող մոդուլը բեռնվում է միջուկում, որն արդեն բեռնում է սեփական բաղադրիչները)։ ZFS-ի համար նման շերտ կարող է պատրաստվել միայն այն դեպքում, եթե Oracle-ից տրամադրվում են լիցենզիայի բացառություններ: Oracle Linux-ում GPL-ի հետ անհամատեղելիությունը լուծվում է նրանով, որ Oracle-ը տրամադրում է լիցենզիայի բացառություն, որը վերացնում է CDDL-ի ներքո համակցված աշխատանքի լիցենզավորման պահանջը, սակայն այս բացառությունը չի տարածվում այլ բաշխումների վրա:

Խնդիրը բաշխման մեջ միայն մոդուլի սկզբնական կոդը մատակարարելն է, որը չի հանգեցնում փաթեթավորման և համարվում է երկու առանձին ապրանքների առաքում: Debian-ում դրա համար օգտագործվում է DKMS (Dynamic Kernel Module Support) համակարգը, որում մոդուլը մատակարարվում է սկզբնական կոդով և հավաքվում է օգտատիրոջ համակարգում՝ փաթեթը տեղադրելուց անմիջապես հետո:

Source: opennet.ru

Добавить комментарий