Linux内核开发团队日前宣布,即将发布的Linux 6.6版本将增强内核模块机制,以更好地防御NVIDIA闭源驱动的不正当行为。
Linux内核开发者Christoph Hellwig发现,NVIDIA最近通过将专有模块中的符号导入声称为GPL许可的模块,然后重新导出这些符号的方式,规避了2020年添加到内核中的防护措施。该防护措施旨在防止专有模块使用仅GPL许可的符号。
鉴于symbol_get本来就只打算用于紧密协作的模块间使用非常内部的符号,限制它只能用于EXPORT_SYMBOL_GPL导出的符号是合理的,也可以避免NVIDIA通过DMCA绕过访问控制措施的昂贵诉讼。
Linux 6.6版本将只允许symbol_get获得EXPORT_SYMBOL_GPL模块的符号,以防御NVIDIA的规避行为。这将增强内核对专有模块只使用开源符号的保护。
2020年第一个防护措施添加时,NVIDIA就建议用户避免使用Linux 5.9,后来他们在几周内发布了支持的驱动程序。这次Linux 6.6版本对其内核驱动程序的阻碍会持续多长时间,我们拭目以待。至少NVIDIA自去年开始已经在维护开源的GPU内核驱动程序,可以作为其专有内核驱动的替代选择。
这一改进体现了开源社区保护GPL许可证完整性的决心。开源驱动对用户来说无疑是更好的选择。我们期待未来内核的改进能进一步限制专有驱动的非正当行为,维护开源社区的权益。