TY - GEN
T1 - ConfigFix
T2 - 43rd IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2021
AU - Franz, Patrick
AU - Berger, Thorsten
AU - Fayaz, Ibrahim
AU - Nadi, Sarah
AU - Groshev, Evgeny
N1 - Publisher Copyright:
© 2021 IEEE.
PY - 2021/5
Y1 - 2021/5
N2 - Highly configurable systems are highly complex systems. The Linux kernel is arguably one of the most well-known examples. Given its vast configuration space, researchers have used it to conduct many empirical studies as well as to build dedicated methods and tools for analyzing, configuring, testing, optimizing, and maintaining the kernel. 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, 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 Linux kernel configurator, that is purely implemented in C, and that is finally a working solution able to produce fixes for configuration conflicts. We describe our experiences of building upon the large body of research done on the kernel configuration mechanisms as well as how we designed and realized ConfigFix while adhering to the Linux kernel's community requirements and standards. ConfigFix not only helps Linux kernel users obtain their desired configuration, but our implemented semantic abstraction provides the basis for many of the above techniques supporting kernel configuration.
AB - Highly configurable systems are highly complex systems. The Linux kernel is arguably one of the most well-known examples. Given its vast configuration space, researchers have used it to conduct many empirical studies as well as to build dedicated methods and tools for analyzing, configuring, testing, optimizing, and maintaining the kernel. 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, 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 Linux kernel configurator, that is purely implemented in C, and that is finally a working solution able to produce fixes for configuration conflicts. We describe our experiences of building upon the large body of research done on the kernel configuration mechanisms as well as how we designed and realized ConfigFix while adhering to the Linux kernel's community requirements and standards. ConfigFix not only helps Linux kernel users obtain their desired configuration, but our implemented semantic abstraction provides the basis for many of the above techniques supporting kernel configuration.
KW - Conflict resolution
KW - Linux kernel
KW - Semantic abstraction
KW - Software configuration
UR - http://www.scopus.com/inward/record.url?scp=85115297797&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85115297797&partnerID=8YFLogxK
U2 - 10.1109/ICSE-SEIP52600.2021.00018
DO - 10.1109/ICSE-SEIP52600.2021.00018
M3 - Conference contribution
AN - SCOPUS:85115297797
T3 - Proceedings - International Conference on Software Engineering
SP - 91
EP - 100
BT - Proceedings - 2021 IEEE/ACM 43rd International Conference on Software Engineering
PB - IEEE Computer Society
Y2 - 25 May 2021 through 28 May 2021
ER -