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, gegen VMware, 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 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 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 , 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 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. der Entwickler wurde hervorgerufen Implementierungen nur fĂŒr proprietĂ€re NVIDIA-Treiber ĂŒber die von diesen Treibern bereitgestellte GPL-Schicht. Als Antwort auf Autor der Patches , 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
