“专有-否”:建议访问Linux内核的GPL调用的层间驱动程序
专有开发已深入到许多应用程序和服务的代码中。在复杂的系统中,摆脱它们非常困难。通常,为此使用变通方法,这是“拐杖”。Linux内核使用层间驱动程序来与专有驱动程序一起使用,这些驱动程序几乎专门用于将驱动程序调用转换为内核。中间层具有开源代码,因此GPL许可证没有任何问题,已遵循了相关手续。
但是这种方法有很多反对者。其中之一是Linux内核开发人员Christoph Hellwig。他以前是Linux基金会技术指导委员会的成员。他还曾在VMware提起诉讼中担任原告。Helwig建议大幅加强保护,以防止将专有驱动程序绑定到Linux内核组件。
为此,他建议使用补丁程序来继承与GPL符号导出相关的标志。在这种情况下,TAINT_PROPRIETARY_MODULE标志在所有从具有此标志的模块中导入符号的模块中继承。保护的本质是,如果层间驱动程序从GPL模块导入了某些内容,则GPL模块将继承TAINT_PROPRIETARY_MODULE标签,并且将无法访问仅可用于GPL模块的内核组件。
来源:3dnews
在讨论中,还提出了反向阻止。例如,如果模块导入EXPORT_SYMBOL_GPL,则不要求GPL兼容性的模块不应导入该模块导出的任何符号。该提议不是Helwig提出的,而是讨论中的另一位参与者提出的。但是海尔维格同意他的看法。 Linus Torvalds很可能不会跳过该提议,因为它将阻止许多专有驱动程序的内核子系统。
所有大惊小怪爆发后公布来自Facebook的补丁工程师,负责netgpu子系统的实现。利用该子系统,可以通过CPU执行协议处理来组织网卡和GPU之间的直接数据交换。根据建议,您可以为GPU或外部CXD之间的数据交换提供通用的RDMA实现。许多开发人员对这种创新表示不满意,因为该实现仅通过专有的NVIDIA驱动程序提供的层才可用。 Helvig甚至称开发人员为巨魔。
反过来,该补丁的作者反对该子系统与NVIDIA无关,因此可以为与AMD和Intel GPU的软件接口提供支持。最终,在没有基于免费驱动程序(例如AMDGPU,Intel i915或Nouveau)的工作支持之前,就无法在内核中提升netgpu。
All Articles