Mining Kbuild to Detect Variability Anomalies in Linux

Mining Kbuild to Detect Variability Anomalies in Linux
复制标题

挖掘 Kbuild 以检测 Linux 中的变异异常

DOI:
--
复制
发表时间:
2012
期刊:
European Conference on Software Maintenance and Reengineering
影响因子:
--
通讯作者:
R. Holt
R. Holt
中科院分区:
--
文献类型:
--
作者:
Sarah Nadi;R. Holt

文献摘要

被引文献

相似文献

Linux内核是广泛的专业化或配置,因此可以用于许多目的。这种可变性是通过三种不同的工件实现的:源代码文件,kconfig(配置)文件和制作文件。这三个之间的任何矛盾都可能导致不良异常,从而导致维护工作增加或可靠性下降。本文通过主要集中于代码和KConfig文件,扩展了已发表的工作,这些工作发现了异常(死亡和亡灵代码块)。当我们考虑制作文件时,我们在Linux内核中检测到进一步的异常。在代码块的层面上,我们的工作暴露了许多其他异常 - 超出了我们手动研究的更多。我们发现,当我们将级别从代码块提高到代码文件时,检测到的异常变得易于研究和理解,从而对开发人员更有用。通过示例,我们说明了我们检测到的异常如何导致不希望的行为。我们展示了随着时间的流逝,开发人员如何倾向于找到和删除这样的异常情况。我们建议自动检测此类异常有可能降低维护工作并提高可靠性。
The Linux kernel is extensively specialized or configured so that it can be used for many purposes. This variability is implemented by means of three distinct artifacts: source code files, Kconfig (configuration) files, and Make files. Any inconsistencies between these three can lead to undesirable anomalies which can lead to increased maintenance efforts or decreased reliability. This paper extends published work that had found anomalies (dead and undead code blocks) by concentrating largely on code and Kconfig files. We detect further anomalies in the Linux kernel when we also consider the Make files. At the level of code blocks, our work exposes many additional anomalies - more than we could study manually. We found that when we lift the level from code blocks to code files, the detected anomalies became easier to study and understand and thus more useful to the developer. By means of examples, we illustrate how the anomalies we detect can lead to undesired behavior. We show how, over time, developers tend to find and delete such anomalies. We suggest that automatic detection of such anomalies has the potential to decrease maintenance efforts and increase reliability.