Characterization and assessment of the linux configuration complexity

Ahmad Jbara, Dror G. Feitelson

Research output: Chapter in Book/Report/Conference proceedingConference contribution

4 Scopus citations

Abstract

The Linux kernel is configured for specific uses by manipulations of the source code during the compilation process. These manipulations are performed by the C pre-processor (CPP), based on in-line directives. Such directives, and the interleaving of multiple versions of the code that they allow, may cause difficulties in code comprehension. To better understand the effects of CPP, we perform a deep analysis of the configurability of the Linux kernel. We found significant inconsistencies between the source code and the configuration control system. Focusing on the thousands of config options appearing in the source code, we found that their distribution is heavy-tailed, with some options having more than a thousand instances in the code. Such wide use seems to imply a massive coupling between different parts of the system. However, we argue that employing a purely syntactic analysis is insufficient. By involving semantic considerations, we find that in reality the coupling induced by the very frequent options is limited. Moreover, even at the syntactic level the adverse effects of CPP are limited, as there is little nesting and the expressions controlling conditional compilation are usually very simple. But it could be even better if the configuration system undergoes a clean up. On the other hand, we found that the code controlled by CPP is very heterogeneous and may exhibit intimate mingling with non-variable code. As a result the applicability of alternative mechanisms such as aspects is hard to envision.

Original languageEnglish (US)
Title of host publicationIEEE 13th International Working Conference on Source Code Analysis and Manipulation, SCAM 2013
PublisherIEEE Computer Society
Pages11-20
Number of pages10
ISBN (Print)9781467357395
DOIs
StatePublished - 2013
Externally publishedYes
Event2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation, SCAM 2013 - Eindhoven, Netherlands
Duration: Sep 22 2013Sep 23 2013

Publication series

NameIEEE 13th International Working Conference on Source Code Analysis and Manipulation, SCAM 2013

Conference

Conference2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation, SCAM 2013
Country/TerritoryNetherlands
CityEindhoven
Period9/22/139/23/13

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Characterization and assessment of the linux configuration complexity'. Together they form a unique fingerprint.

Cite this