Nabídka na blokování ovladačů, které poskytují přístup k GPL voláním jádra Linuxu

Christoph Hellwig, známý vývojář jádra Linux, který byl v minulosti členem řídicího technického výboru organizace Linux Foundation a vystupoval jako žalobce v souvisejícím řízení týkajícím se GPL soudní řízení s VMware, navrhl zpřísnit ochranu proti spojování proprietárních ovladačů s komponenty jádra Linux, které jsou exportovány pouze pro moduly pod licencí GPL. Aby obcházeli omezení na export GPL-symbolů, výrobci proprietárních ovladačů používají aplikační modul, jehož kód je otevřený a distribuován pod licencí GPLv2, ale jeho funkce spočívá v překladu přístupu proprietárního ovladače k nezbytným API jádra, které je zakázáno používat přímo z proprietárního kódu.

K zablokování takového manévru Christoph Hellwig připravil pro jádro Linux navrhuje záplaty, které zajišťují dědění vlajek souvisejících s exportem GPL-symbolů. Návrh spočívá v dědění vlajky TAINT_PROPRIETARY_MODULE ve všech modulech, které importují symboly z modulů s touto vlajkou. Takže pokud se GPL aplikační modul pokusí importovat symboly z ne-GPL modulu, GPL modul zdědí označení TAINT_PROPRIETARY_MODULE a nebude moci přistupovat k komponentům jádra, které jsou k dispozici pouze pro moduly pod licencí GPL, i když modul dříve importoval symboly z kategorie „gplonly“.

Během diskuse bylo také návrh navrhnuto obrácené zablokování — pokud modul importuje symboly EXPORT_SYMBOL_GPL, jakékoli symboly exportované tímto modulem by neměly být importovány moduly, které se výslovně nehlásí k kompatibilitě s GPL. Tedy, pokud modul importuje symboly EXPORT_SYMBOL_GPL, všechny jeho exportované symboly by měly být zpracovány jako EXPORT_SYMBOL_GPL. Christoph Hellwig napsal, že s tímto návrhem 100% souhlasí, ale tuto změnu Linus Torvalds neschválí, protože by vedla k nedostupnosti většiny subsystémů jádra pro proprietární ovladače, protože při vývoji ovladačů se připojují základní symboly, které jsou exportovány pod GPL.

Změna byla navržena v reakci na publikaci inženýrem z Facebooku sérii záplat s implementací nového subsystému netgpu, který umožňuje organizovat přímý přenos dat (DMA
zero-copy) mezi síťovou kartou a GPU, přičemž zpracování protokolu probíhá silami CPU. Nespokojenost vývojářů vyvolala dostupnost realizace pouze pro proprietární ovladače NVIDIA prostřednictvím GPL vrstvy poskytované těmito ovladači. V reakci na kritiku autor patchů uvedl, že subsystém není vázán na NVIDIA a jeho podpora může být zajištěna také pro programové rozhraní k GPU AMD a Intel. Výsledkem bylo, že propagace netgpu do jádra byla uznána za nemožnou do doby, než se objeví funkční podpora založená na svobodných ovladačích, jako jsou AMDGPU, Intel i915 nebo Nouveau.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster