diff -u:扣留内核
发表于 2018 年 2 月 8 日
内核开发中的新内容:扣留内核。
有时,有人提交了一个补丁,但没有清楚地解释为什么该补丁有用,当开发者询问时,此人提供了模糊或假设性的解释。最近发生了一件类似的事情,当时Matthew Garrett提交了一个补丁,旨在禁用正在运行的内核检测它是否完全运行开源代码的能力。
具体来说,他希望能够在运行时加载未签名的模块,而内核不会检测到这种情况并“污染”自身。 污染内核不会以任何重要方式影响其行为,但它对内核开发人员非常有用,他们通常会拒绝追踪任何使用闭源软件的内核上的错误报告。 如果没有完全开源的内核,就无法知道给定的错误是在内核的开源部分还是闭源部分中。 因此,任何向内核开发人员提交错误报告的人都应始终确保在未污染的内核上重现该错误。
Matthew 的补丁将使开发人员不可能知道内核是否已被污染,这可能导致花费大量时间来追踪应该被污染的内核上的错误。
那么,Matthew 为什么想要内核中的这个补丁呢? 这一点从未明确说明。 有时,他似乎暗示该补丁只是一种避免用户抱怨他们的内核在不应该被污染时被污染的方式。 有一次,Ben Hutchings 建议 Matthew 可能希望允许第三方出于某种原因自行签署模块。
但是,由于没有人能够真正清楚地了解该补丁的原因,并且由于污染内核传统上是避免追踪闭源代码中的错误的好方法,因此没有一位开发人员似乎急于接受 Matthew 的补丁。