英伟达在开源社区的口碑相对来说还是比较差的,尤其是此前还被 Linus Torvalds 指着鼻子骂,事实证明被骂多了英伟达还是知道改的。后来英伟达推出的适用于 Linux 系统的显卡驱动程序已经有两种内核模块,第一种依然是英伟达惯例的闭源 / 专有驱动程序,即所有代码都归英伟达所有,其他人不得使用和修改这些代码;第二种则是基于 MIT/GPLv2 许可证发布的开源内核模块。
这个开源内核模块采用双开源许可证,内核源代码也在 GitHub 上提供,两种内核模块使用相同的底层源代码,但互斥也就是不能同时安装,不过无论是安装哪种内核模块,驱动程序的用户空间组件都是相同的、并且以相同的方式运行。
现在的变化是什么:
5 月 11 日英伟达宣布从 560.x 系列驱动程序开始,默认情况下不再安装专有的英伟达驱动程序,而是安装具有开放内核的驱动程序。
如果用户通过.run 文件开始安装,英伟达将预先检测系统使用的显卡型号,如果显卡支持的话,那么默认情况下就安装开放内核版。相反,如果显卡不支持则安装英伟达闭源的驱动程序。
受支持的主要是基于 NVIDIA Turing 及以上架构的显卡,图灵架构的产品包括 GTX 16XX/20XX、MX450/550、RTX 3000~8000 等。
简单来说就是 2018 年及之后英伟达推出的显卡都支持使用开放内核模块的驱动程序,从 560.x 驱动程序也默认安装开放内核。
后续的变化:
英伟达还透露现阶段如果用户需要,仍然可以通过命令行来指定内核,也就是继续安装英伟达闭源的内核模块,不过在未来某些显卡将只支持安装开放内核模块。
这种说法是否意味着随着时间的推移英伟达会逐渐放弃闭源内核的驱动程序呢?这是有可能的,毕竟对英伟达来说如果开源 / 闭源驱动模块都能实现完全相同的功能和性能,那也没必要再继续维护两套驱动程序。