Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Twórcy Linuksa wyśmiali patch dla kernela od programisty Facebooka

Jonathan Lemon, programista Facebooka, stworzył patch do kernela, który został wyśmiany przez czołowych twórców jądra Linuksa.
Twórcy Linuksa wyśmiali patch dla kernela od programisty Facebooka

Programiści rozwijający Linuksa odrzucili łatkę dla kernela, stworzoną przez Jonathana Lemona. Opiera się ona o wykorzystanie własnościowych sterowników Nvidii, a mimo to oznaczona została jako GPL. Tego typu patch powinien zawierać informację, że opiera się na kodzie 3rd-party, zgodnie z zasadami licencji kernela. Sama propozycja tego typu łatki tak zirytowała maintainerów Linuksa, że postanowili oni utrudnić ukrywanie nieotwartego kodu w modułach GPL.

Jak tłumaczono, łatki zaproponowanej przez Jonathana Lemona, programisty Facebooka, nie można używać w modułach, które znajdą się w kernelu. Zawiera ona kod będący własnością konkretnej firmy, więc moduł taki powinien zostać otagowany literą "P", oznaczającą użycie kodu Proprietary. W czasie ładowania symbole z tego modułu nie trafią do listy EXPORT_SYMBOL_GPL(), więc nie będzie można z nich korzystać w innych modułach GPL.

Sam patch miał służyć do wprowadzenia mechanizmu zero-copy między GPU a kontrolerem sieci. By całość działała, wymagany był sterownik NVIDII, chociaż autor patcha twierdził, że można spokojnie zaimplementować podobną funkcję dla innych dostawców.


Linux vs. Lemon

Całą sprawę zauważył również jeden z współtwórców kernela Linuksa, Greg Kroah-Hartman, komentując to w następujący sposób:

Ok, to już jest żart. Dobra robota, nie powinienem był w ogóle czytać poprzednich poprawek. Poproszę, aby prawnik zaakceptował ten patch jako zewnętrzny, bo to jedyny sposób, w jaki możemy to w ogóle rozpatrywać.


Poparł go jeden z developerów jądra Linuksa, Christoph Hellwig, oskarżając Lemona o obejście wymagań zawartych w licencji kernela. Zwraca się on do Lemona w następujący sposób:

Jeżeli jest to dla ciebie rozsądne rozwiązanie, to nigdy nie dopuścimy Cię do kernela.


Lemon zaś twierdzi, że:

Obecnie używany procesor graficzny to NVIDIA, ale napisany kod może również działać na AMD lub Intel. 


Reszta nie była jednak co do tego aż tak przekonana.


Nowy patch

Powyższa kłótnia zainspirowała Christopha Hellwiga do stworzenia własnego patcha o nazwie inherit TAINT_PROPRIETARY_MODULE. Hellwig powiedział, że błędy w rozwiązywaniu modułów _GPL pojawiają się od początku — dokładnie chodzi o to, że dany moduł może pojawić się jako licencjonowany na GPL i używać eksportowania GPL, polegając jednocześnie na symbolach, które nie są dla GPL charakterystyczne. 

Nowy patch ma zapewnić, że w przypadku pojawienia się podejrzanego modułu, pojawi się flaga, która wyróżni wszystkie moduły używające podejrzanych symboli. Moduły oznaczone jako TAINT_PROPRIETARY_MODULE będą wtedy odrzucane. 


Podsumowanie

Powyższa kłótnia uwidacznia pewien konflikt: widać tutaj wyraźnie różnicę między pasjonatami, dla których kernel jest naprawdę ważny, a kimś z jakiejś firmy, kto commituje, ponieważ chce mieć konkretne funkcje. Dla tych drugich idea jest nieistotna, co jest z kolei naprawdę ważne dla prawdziwych twórców Linuksa. Inna sprawa, że gdyby sterowniki NVIDII były otwarte, to pewnie nie byłoby z tego takiego problemu.

Nie przegap treści Bulldogjob
Subskrybuj artykuły

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej