论文标题

configfix:Linux内核的交互式配置冲突分辨率

ConfigFix: Interactive Configuration Conflict Resolution for the Linux Kernel

论文作者

Franz, Patrick, Berger, Thorsten, Fayaz, Ibrahim, Nadi, Sarah, Groshev, Evgeny

论文摘要

高度可配置的系统是高度复杂的系统,Linux内核可以说是最著名的系统之一。自2007年以来,它一直是研究界的经常目标,并进行了经验研究并建立了专门的方法和工具,用于分析,配置,测试,优化和维护内核,以其庞大的配置空间。然而,尽管工作大量工作,但主要是由于此类研究的结果修复的错误修复,使其重新回到了内核的源树中。不幸的是,Linux用户仍然在内核配置和解决配置冲突方面遇到困难,因为内核在很大程度上缺乏自动支持。此外,还有一些技术和社区要求支持内核中的自动冲突解决方案,例如,使用仅使用兼容兼容的第三方库(如果有)的纯基于C的解决方案。为了回到Linux社区,我们提出了与内核配置器集成的工具,该工具纯粹是在C中实现的,这最终是一种可以为配置冲突而产生修复程序的工作解决方案。在这项经验报告中,我们描述了我们十年来基于Linux内核配置机制的研究以及我们如何设计和实现ConfigFix的大量工作的经验,同时遵守Linux内核的社区需求和标准。尽管ConfigFix帮助Linux内核用户获得了所需的配置,但我们实现的声音语义抽象为支持内核配置的许多上述技术提供了基础,从而帮助研究人员和内核开发人员。

Highly configurable systems are highly complex systems, with the Linux kernel arguably being one of the most well-known ones. Since 2007, it has been a frequent target of the research community, conducting empirical studies and building dedicated methods and tools for analyzing, configuring, testing, optimizing, and maintaining the kernel in the light of its vast configuration space. However, despite a large body of work, mainly bug fixes that were the result of such research made it back into the kernel's source tree. Unfortunately, Linux users still struggle with kernel configuration and resolving configuration conflicts, since the kernel largely lacks automated support. Additionally, there are technical and community requirements for supporting automated conflict resolution in the kernel, such as, for example, using a pure C-based solution that uses only compatible third-party libraries (if any). With the aim of contributing back to the Linux community, we present CONFIGFIX, a tooling that we integrated with the kernel configurator, that is purely implemented in C, and that is finally a working solution able to produce fixes for configuration conflicts. In this experience report, we describe our experiences ranging over a decade of building upon the large body of work from research on the Linux kernel configuration mechanisms as well as how we designed and realized CONFIGFIX while adhering to the Linux kernel's community requirements and standards. While CONFIGFIX helps Linux kernel users obtaining their desired configuration, the sound semantic abstraction we implement provides the basis for many of the above techniques supporting kernel configuration, helping researchers and kernel developers.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源