Linux 内核开发人员如何发现 Linux 内核中的 bug 和其他需要改进的地方?

oli*_*li2 7 linux kernel development

这可能是也可能不是题外话。如果是的话,请发表评论,我会将其删除。

我自己正在努力成为一名内核开发人员,在阅读一些邮件列表时,我不禁想知道 Linux 内核开发人员在 Linux 内核中哪里可以找到改进的地方。查看内核的错误跟踪器,实际上并没有那么多内核错误,并且很多补丁都与优化或以其他方式改进内核内部有关。这引出了我的问题,即这些开发人员如何找出 Linux 内核中需要改进的地方。

再次强调,如果这不是主题,请发表评论,我会将其删除。

use*_*489 3

有(至少)三种查找错误的方法:

  • 使用该程序的人可能会注意到它的行为不正常。这可能是他们想要的功能,也可能是缺陷(即错误)。
  • 在直接查看代码时,缺陷可能会被发现为该代码的广告行为(来自评论或文档或来自同一代码的其他部分)与其实际功能之间的差异,或者可能是意外的误用,例如作为数组下标越界。这可以通过机械化手段(例如编译器检查)或通过人眼来完成。
  • 外部程序(通常称为模糊器)可以以随机方式攻击代码,并尝试随机使其出现异常行为。

您可能不会看到很多内核错误,因为它们被发现后很快就会被修复,而不是因为数量不多。

功能请求与错误的区别在于,它通常涉及为新行为添加新代码,而错误是现有代码中的错误。优化可以是错误修复或新功能。

作为一个新的内核开发者,优化可能是非常困难的。

您最好的选择(如已经建议的那样)可能是找到当前不受支持或未得到很好支持的设备,并尝试为其编写驱动程序。

但是,仅仅阅读现有的内核代码而不发现需要进行更改本身可能就是进入内核开发的好方法。讨论优化并了解新的优化如何工作同样有价值。