ConfigFix: Interactive Configuration Conflict Resolution for the Linux Kernel

by   Patrick Franz, et al.

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.


page 1

page 5


Group Recommendation Techniques for Feature Modeling and Configuration

In large-scale feature models, feature modeling and configuration proces...

DOCSDN: Dynamic and Optimal Configuration of Software-Defined Networks

Networks are designed with functionality, security, performance, and cos...

Multi-party authorization and conflict mediation for decentralized configuration management processes

Configuration management in networks with highest security demands must ...

An Empirical Study of Configuration Mismatches in Linux

Ideally the variability of a product line is represented completely and ...

How to Complete an Interactive Configuration Process?

When configuring customizable software, it is useful to provide interact...

Data Conflict Resolution Using Trust Mappings

In massively collaborative projects such as scientific or community data...

Please sign up or login with your details

Forgot password? Click here to reset