一句话:首次实证研究编译器缺陷对操作系统内核的影响,分析 7 个内核中 494 个规避方案。
本文关注编译器缺陷会静默地将错误引入其生成的代码,而既有编译器缺陷研究多只分析缺陷本身,对操作系统社区等外部人员意义有限。尽管近期已有工作分析编译器缺陷对其他项目的影响,但尚无研究探究这类缺陷如何影响操作系统内核,许多问题仍未解答,例如内核开发者是否自己报告了大多数编译器缺陷,以及规避缺陷时缺陷症状与被修改内核组件之间有何关系。为此,作者从 7 个流行操作系统内核的修订历史中收集 494 个针对编译器缺陷的 workaround,开展首个实证研究,并围绕上述研究问题进行分析。早期结果已给出若干发现,例如在大多数 workaround 中,编译器缺陷并非由操作系统程序员报告。
Compiler bugs can silently introduce bugs into their compiled code. Although compiler bugs are critical in the development of OS kernels, most studies on compiler bugs analyze the characteristics of only compiler bugs themselves. Their findings are less interesting to outsiders, e.g., the OS community. Although two recent papers have started to analyze how compiler bugs affect the development of other projects, no study has been conducted to explore how such bugs affect OS kernels. As a result, many questions are still open. For instance, in the development of OS kernels, are most compiler bugs identified by OS programmers themselves? When bypassing compiler bugs, what is the relationship between compiler-bug symptoms and modified OS components? The answers to the above questions are useful for both compiler and OS programmers. To answer the above questions, we conducted the first empirical study on how compiler bugs affect OS kernels. We collected 494 workarounds of compiler bugs from the revision histories of 7 popular OS kernels. We analyzed these workarounds and explored the answers to these research questions. We have summarized some findings according to our early results. For instance, we found that in most workarounds, compiler bugs are not reported by OS programmers.