17611538698
webmaster@21cto.com

Linus Torvalds 用 AI 编程消灭一个内核漏洞

人工智能 0 15 51分钟前
图片

21CTO导读:看来林纳斯同志已经将AI编程工具当做了一个得力助手,并且取得了一个成功案例。

Linux 内核仁慈的独裁者与决策者——大男孩 Linus Torvalds,刚刚从自己的代码里找到了一个棘手的 Bug。据说他自己称是用 AI 解决的,是真的吗?

现在Linux内核7.2已经发布,7.3的开发已经在进程中了,想不到的是一个Bug其实来自Linus本人。

从某种程度上来说,确实如此,而且拿他的话来说是:“地狱般的调试”。

新的Bug修复版本的程序名为:“不要将擦拭的ccs作为存储可用的VRAM来分发”,这个程序的作者是Linus Torvalds。

内核团队正在兴高采烈并热火朝天地开发7.3,这就意味着大量的bug修复工作正在紧张进行。

Torvalds 仍然负责整个开源项目。但他也曾多次公开提出:“在过去近 20 年里,我并没有怎么写过代码。”

Linus 的这个 Bug 大概是个例外,但也是一部分异常,从它本身的技术来看相对来说并不那么复杂。

来源是Intel Xe 显卡内核驱动程序的一个疏忽,机器会在启动过程中死机,死机点正好在网络切换到图形模式显示登录界面的时候。但这一点就足以让故障排除变得更加繁琐。

图片

Bug 的形成原因在于图形驱动程序如何分配英特尔计算命令流内存(简称 CCS)使用的内存。英特尔 i915 内核驱动程序文档将其描述为:“一个可以访问媒体和 GPGPU 管道,但不能访问 3D 管道的引擎。”驱动程序会尝试确定 CCS 的位置,获取其下方的内存,经过一些步骤后,将其向上取整到 128 kB 的倍数,并将其设置为可用的显存。

问题出在向上取整上。因为这有时会导致已被使用的内存标记为可用内存。它的后续取整才是正克拉的。

这可能只需要一行代码就可以搞定,但找到错误却是个难点。

故事写到这里变得有趣起来。原因有几个:其中之一,在随附的电子邮件中插入了一段幅很长的评论,内容如下:

“这简直就是一场可怕的异常的调试过程,幸亏AI做了很多繁琐的工作才得以顺利进行。”

“我想这可能是我不知疲倦的助手,但人工智能多次直截了当地的表示,这是不可能的,也无法解决,我们应该起草一份报告。”


“我怀疑那些东西是由一些不是我这么固执的人训练出来的。”


“虽然人工智能有好几次都想放弃,但还是在我提交的时候还是坚持添加了调试代码并认真地进行了分析。所以该表扬的地方要表扬,上面的提交信息就是我让人工智能写的。”


“这基本上就是一行代码将错误的 'round_up()' 修复为 'round_down()',但为此添加了 24 个补丁,并添加附加调试信息,以及经历了 18 次内核启动,最终才将其缩小确定到这一步。


——莱纳斯

这里,有几个地方值得我们关注的地方。

首先,这个修复程序是由Linus本人本人提供的。其次,他那条评论特别冗长。第三点,可能也是最重要的一点,是他使用了一个AI机器人来查找这个程序漏洞。他还用这个机器人编写了漏洞报告,这也解释了为什么报告部分如此枯燥乏味。

上面提到的文件显示说明,如果您重新启动登录界面的程序——在本例中是 GNOME 显示管理器 GDM,它就可以正常工作,因为第二次运行时它会获取到不同的内存块。

这很好地说明了编码机器人对于开发人员来说确实是一个非常有用的工具。

看起来Linus并没有真用机器人来编写修复程序。前面提到了,其实没,必要只需要一行代码就可以修复,但编码机器人生成了42段(确认是42段,这肯定需要仔细思考一番)测试代码,帮助Linus找到这个bug。听起来这可能不是件容易的事。

另外值得一提的是,大多数现代 PC 图形控制器现在都拥有独立的内存区域,而不是 CPU 共享,这导致了一些持续存在的 Bug。

Arm64架构的机器,尤其是苹果芯片的机器,通过使用CPU和图形控制器共享的单一内存池来避免这个问题。随着AI超大规模数据中心导致内存无尽,内存成本不断上升,看到我们针对这一领域的其他解决方案也正在思考。

如果你的计算机系统内存不足,但显卡性能强劲,那么 Sean Lobjoit 的 NBD-VRAM 补丁可以让 Linux 系统将剩余的显存初始化高速交换空间。另一方面,Valve 的 Natalie Vock 也编写了一个补丁,可以提升低端 AMD 显卡在尝试分配超出其实际显存容量的显存时的速度,上周她对此处进行了更详细的解释。

看来苹果更紧密的芯片集成以及单一的共享内存池,是整个行业最终的发展方向。

Intel Xe驱动程序的修复程序已合并到Linux 7.3 Git库,并且也已标记为将移植到稳定内核分支。

Linus Torvalds 认为人工智能是一个非常有用的工具,并再次确认它在追踪英特尔显卡驱动程序漏洞的过程中“提供了极大的帮助”。

作者:场长

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信