▲ 更多精彩内容 请点击上方蓝字关注我们吧!
细数 Linux 之父 Linus Torvalds 过往的“金句时刻”,令人影响最为深的,想必还是 2012 年因不满英伟达(NVIDIA)闭源驱动的爆粗事件:“NVIDIA 是最难伺候的硬件制造商,也是我们接触过最糟糕的公司,没有之一!”
当时,虽然 NVIDIA 回应称“支持 Linux 对 NVIDIA 来说很重要”,但依旧坚持闭源,理由是“为所有客户提供跨多个平台的一致 GPU 体验”。
不曾想,十年后的 NVIDIA 突然“想开”了:5 月 11 日,NVIDIA 宣布正式开源其 Linux GPU 内核模块,且使用 GPL/MIT 双重许可。
这十年间,不仅 Linus Torvalds 对 NVIDIA 非常不满,Fedora 项目负责人也呼吁 NVIDIA 支持开源驱动程序,甚至连黑客都想让 NVIDIA 开源驱动。
今年 3 月,窃取 NVIDIA 1TB 数据的黑客组织 Lapsus$ 提出一项要求:NVIDIA 必须完全开源 Windows、macOS、Linux 系统的 GPU 驱动,否则就把机密数据公之于众。
上个月,Fedora 项目负责人 Matthew Miller 连发多条推文,抨击因 NVIDIA 的专有驱动程序,让众多公司做了大量兼容工作以优化 Linux 体验,结果还不理想。
这些年来,NVIDIA 对开源 GPU 驱动的热情一直不高,而 NVIDIA 专有驱动又导致了 Linux 用户体验不佳,在此形势下,Nouveau 应运而生——一个为 Nvidia GPU 诞生的开源驱动项目,由第三方开发者通过逆向工程技术还原 Nvidia 的专有 Linux 驱动所构建。
但很可惜的是,因为 Nouveau 并没有获得 NVIDIA 官方的认可与支持,所以它对于显卡的调用有很大局限且不太稳定,去年还因此被 Chrome 列入了黑名单,默认关闭 GPU 加速。
结合以上种种事迹,我们能明显体会到业界对于 NVIDIA 开源驱动的迫切渴望。而 NVIDIA 也终于开始正视这些声音,迈出了支持开源驱动程序的重要一步。
据 NVIDIA 官方博文介绍,本次 Linux GPU 内核模块的开源使用 GPL/MIT 双重许可,从 R515 驱动程序版本开始,开发者可在 GitHub 上的 NVIDIA Open GPU Kernel Modules repo 中查找内核模块的相关源码。(GitHub 地址:https://github.com/NVIDIA/open-gpu-kernel-modules)
目前,此开源 GPU 内核模块的第一个版本是 R515,除了源代码之外,NVIDIA 还提供了驱动程序的完全构建和打包版本。具体支持的功能包括:
对于 NVIDIA Turing 和 NVIDIA Ampere 架构系列中的数据中心 GPU,此开源代码可用于生产;
对 GeForce 和 Workstation GPU 提供高质量支持,并且“后续版本将提供更强大且功能齐全的 GeForce 和 Workstation 支持,NVIDIA 开源内核模块最终将取代闭源驱动程序”;
拥有 Turing 和 Ampere GPU 的客户可选择安装哪些模块,Pre-Turing 客户将继续运行闭源模块。
对于此次开源,NVIDIA 表示:“此开源版本,将改善 NVIDIA GPU 在 Linux 中的体验,与操作系统更紧密地集成,有利于开发人员进行调试、集成和反馈。”
不论对 Linux 分发提供商还是开发者而言,开源模块都增加了易用性,也将改善用户体验,甚至可以明确内核事件调度的具体原理,加快调试并将其无缝集成至定制的 Linux 内核中——而通过 Linux 用户社区的意见和评论,NVIDIA 也可以进一步帮助提高其 GPU 驱动程序的质量和安全性。
不过 NVIDIA 在博文中补充道,这次开源的 Linux GPU 内核模块存在不足:“当前的代码库不符合 Linux 内核设计要求,也不是 Linux 上游的候选者。”NVIDIA 表示,未来将计划与 Linux 内核社区及合作伙伴(如 Canonical、Red Hat 和 SUSE)合作开发上游化的方法。
尽管该开源内核模块还无法上游化,但 NVIDIA 已迈出第一步,并表示未来将继续开发,这一消息已足以令许多业内人士及开发者感到惊讶并欣喜。
Red Hat Linux 工程副总裁 Mike McGrath:“红帽与 NVIDIA 合作多年,我们很高兴看到他们迈出下一步。我们期待将这些功能带给我们的客户,并提高与 NVIDIA 硬件的互操作性。”
SUSE 业务关键 Linux 总经理 Markus Noga:“我们很高兴 NVIDIA 将其 GPU 内核模式驱动程序作为开源版本发布,这是开源社区和加速计算领域真正的里程碑。”
Julia Computing 联合创始人兼 CTO Keno Fischer :“祝贺 NVIDIA 终于将其内核驱动程序开源,虽然这是一个漫长的过程,但绝对是正确的举动。”
除此之外,开源解决方案供应商 Red Hat 桌面高级经理 Christian F.K. Schaller 还为此特意撰写了一篇文章《Why is the open source driver release from NVidia so important for Linux?(为什么 NVidia 的开源驱动程序版本对 Linux 如此重要?)》。
在文中,Christian F.K. Schaller 详细分析了 NVIDIA 此举对于 Nouveau 及 Fedora 和 RHEL 等 Linux 发行版的影响:
Nouveau:在官博中,NVIDIA 就明确表示其开源内核模块可作为参考,帮助改进 Nouveau 驱动程序,为其带来新功能。但 Linux 内核是不允许同一硬件有多个驱动程序的,因此为了让新的 NVidia 内核驱动程序进入当前的驱动程序,需有所取舍。Christian F.K. Schaller 指出,未来“这个新的共享内核驱动程序将被并称为 Nouveau 还是另一个个体,仍是一个悬而未决的问题。”
Fedora 和 RHEL 等 Linux 发行版:在短期内,该开源内核模块不会产生重大影响,但随着时间的推移,它将提供一条从根本上简化支持 NVidia 硬件的途径。
目前,NVIDIA 所开源的 Linux GPU 内核模块在 GitHub 上已获 5k+ Star,部分开发者对 NVIDIA 这番举动也十分支持:“这是十多年来对开源操作系统硬件支持所发生的最重要的事情之一。”
那么,你对 NVIDIA 开源其 Linux GPU 内核模块的举动有何看法?
推荐阅读
添加微信回复“进群”
拉你进技术交流群!
国产芯|汽车电子|物联网|新能源|电源|工业|嵌入式…..
在公众号内回复您想搜索的任意内容,如问题关键字、技术名词、bug代码等,就能轻松获得与之相关的专业技术内容反馈。快去试试吧!
如果您想经常看到我们的文章,可以进入我们的主页,点击屏幕右上角「三个小点」,点击「设为星标」。