Angebot zur Sperrung von Treibern, die Zugriff auf GPL-Aufrufe des Linux-Kernels gewÀhren

Christoph Hellwig, ein bekannter Entwickler des Linux-Kernels, der einst Mitglied des technischen Ausschusses der Linux Foundation war und KlĂ€ger in einem Verfahren im Zusammenhang mit der GPL, zog gegen VMware, Alternativen zu den Begriffen „whitelist/blacklist“ und „master/slave“ vor, die fĂŒr die Verwendung in Spezifikationen bevorzugt werden – anstelle von „master/slave“ wird empfohlen, „primary/secondary“, „leader/follower“, um den Schutz gegen die Bindung proprietĂ€rer Treiber an die Linux-Kernelkomponenten, die ausschließlich fĂŒr GPL-lizenzierte Module exportiert werden, zu verstĂ€rken. Um die EinschrĂ€nkung des Exports von GPL-Symbolen zu umgehen, verwenden Hersteller proprietĂ€rer Treiber ein Schnittstellenmodul, dessen Code offen ist und unter der GPLv2-Lizenz verteilt wird, allerdings beschrĂ€nken sich die Funktionen auf die Übersetzung des Zugriffs des proprietĂ€ren Treibers auf erforderliche APIs des Kernels, die aus proprietĂ€rem Code heraus nicht direkt genutzt werden dĂŒrfen.

Um einen solchen Manöver zu blockieren, schlug Christoph Hellwig hat fĂŒr den Linux-Kernel Patches vor, die die Vererbung von GPL-Exportbezugnahmen sicherstellen. Der Vorschlag zielt darauf ab, das TAINT_PROPRIETARY_MODULE-Flag in allen Modulen zu vererben, die Symbole aus Modulen mit diesem Flag importieren. Wenn also ein GPL-Schnittstellenmodul versucht, Symbole aus einem nicht-GPL-Modul zu importieren, erbt das GPL-Modul die TAINT_PROPRIETARY_MODULE-Markierung und kann nicht auf Kernel-Komponenten zugreifen, die nur fĂŒr Module unter GPL-Lizenz verfĂŒgbar sind, selbst wenn das Modul zuvor Symbole aus der Kategorie „gplonly“ importiert hat.

Bei der Diskussion wurde auch vorgeschlagen eine RĂŒckblockierung — wenn ein Modul EXPORT_SYMBOL_GPL-Symbole importiert, dĂŒrfen alle von diesem Modul exportierten Symbole nicht von Modulen importiert werden, die nicht ausdrĂŒcklich die KompatibilitĂ€t mit GPL erklĂ€ren. Das heißt, wenn ein Modul EXPORT_SYMBOL_GPL-Symbole importiert, mĂŒssen alle seine exportierten Symbole als EXPORT_SYMBOL_GPL behandelt werden. Christoph Hellwig schrieb, dass er mit diesem Vorschlag zu 100 % einverstanden ist, aber eine solche Änderung wird von Linus Torvalds nicht genehmigt, da sie dazu fĂŒhren wĂŒrde, dass proprietĂ€re Treiber fĂŒr die meisten Subsysteme des Kernels nicht mehr zugĂ€nglich wĂ€ren, weil bei der Entwicklung von Treibern auf grundlegende Symbole zurĂŒckgegriffen wird, die unter GPL exportiert werden.

Änderung wurde als Reaktion auf Veröffentlichung eine Serie von Patches eines Facebook-Ingenieurs mit der Implementierung eines neuen netgpu-Subsystems vorgeschlagen, das es ermöglicht, den direkten Datenaustausch (DMA
zero-copy) zwischen der Netzwerkkarte und der GPU zu organisieren und dabei die Protokollverarbeitung durch die CPU durchzufĂŒhren. Unzufriedenheit der Entwickler wurde hervorgerufen VerfĂŒgbarkeit Implementierungen nur fĂŒr proprietĂ€re NVIDIA-Treiber ĂŒber die von diesen Treibern bereitgestellte GPL-Schicht. Als Antwort auf Kritik Autor der Patches wies darauf hin, dass das Subsystem nicht an NVIDIA gebunden ist und dessen UnterstĂŒtzung auch fĂŒr Software-Schnittstellen zu AMD- und Intel-GPUs bereitgestellt werden kann. Letztendlich wurde die Förderung von netgpu in den Kernel als unmöglich angesehen, bis eine funktionale UnterstĂŒtzung auf Grundlage freier Treiber wie AMDGPU, Intel i915 oder Nouveau verfĂŒgbar ist.

Quelle: opennet.ru

60GB SSD 8Gb DDR4