Christoph Hellwig, ein bekannter Linux-Kernel-Entwickler, der ehemals Mitglied des technischen Leitungsgremiums der Linux Foundation war und Kläger in einem mit GPL verbundenen gegen VMware, die Sicherheit gegen die Verknüpfung proprietärer Treiber mit Komponenten des Linux-Kernels, die nur für GPL-lizenzierte Module exportiert werden, zu verschärfen. Um die Einschränkung beim Export von GPL-Symbolen zu umgehen, verwenden Hersteller proprietärer Treiber eine Zwischenschicht, deren Code offen und unter GPLv2 lizenziert ist, dessen Funktionen jedoch auf die Übersetzung des Zugriffs des proprietären Treibers auf die notwendigen Kernel-APIs beschränkt sind, die für die Nutzung aus proprietärem Code direkt verboten sind.
Um solchen Manövern entgegenzuwirken, Für den Linux-Kernel gibt es Patches, die das Erben von Flags für den Export von GPL-Symbolen ermöglichen. Dies betrifft das Erben des Flags TAINT_PROPRIETARY_MODULE in allen Modulen, die Symbole aus solchen mit diesem Flag importieren. Sollte ein GPL-Wrapper-Modul versuchen, Symbole aus einem Nicht-GPL-Modul zu importieren, erbt das GPL-Modul das Label TAINT_PROPRIETARY_MODULE und kann nicht auf Kernelkomponenten zugreifen, die nur für unter GPL lizenzierte Module verfügbar sind, auch wenn das Modul zuvor Symbole aus der Kategorie „gplonly“ importiert hat.
Es wurde außerdem diskutiert, einen Vorschlag zur Rückblockade gab — wenn ein Modul Symbole EXPORT_SYMBOL_GPL importiert, dürfen alle von diesem Modul exportierten Symbole nicht von Modulen importiert werden, die nicht ausdrücklich die Kompatibilität mit GPL angeben. Das heißt, wenn ein Modul Symbole EXPORT_SYMBOL_GPL importiert, müssen alle seine exportierten Symbole als EXPORT_SYMBOL_GPL behandelt werden. Christoph Helwig , was zu 100 % mit diesem Vorschlag übereinstimmt, aber eine solche Änderung würde von Linus Torvalds nicht akzeptiert werden, da sie die Verfügbarkeit von proprietären Treibern für die meisten Subsysteme des Kernels beeinträchtigen würde, da bei der Entwicklung von Treibern grundlegende Symbole verwendet werden, die unter der GPL exportiert werden.
Die Änderung wurde als Reaktion auf einen Ingenieur von Facebook vorgeschlagen, der eine Serie von Patches zur Implementierung eines neuen Subsystems netgpu entwickelt hat, das einen direkten Datenaustausch (DMA
zero-copy) zwischen der Netzwerkkarte und der GPU ermöglicht, während gleichzeitig die Protokollverarbeitung durch die CPU erfolgt. unter den Entwicklern wurde verursacht durch die Implementierung nur für die proprietären NVIDIA-Treiber über die von diesen Treibern bereitgestellte GPL-Schicht. Als Antwort auf oberster Patch-Autor , dass das Subsystem nicht an NVIDIA gebunden ist und dessen Unterstützung auch für Software-Schnittstellen zu AMD- und Intel-GPUs sichergestellt werden kann. Schließlich wurde der Fortschritt von netgpu in den Kernel als unmöglich angesehen, bis es funktionale Unterstützung auf der Basis von freien Treibern gab, wie AMDGPU, Intel i915 oder Nouveau.
Quelle: opennet.ru
