2013
DOI: 10.1002/smr.1595
|View full text |Cite
|
Sign up to set email alerts
|

The Linux kernel: a case study of build system variability

Abstract: SUMMARYAlthough build systems control what code gets compiled into the final built product, they are often overlooked when studying software variability. The Linux kernel is one of the biggest open source software systems supporting variability and contains over 10,000 configurable features described in its KCONFIG files. To understand the role of the build system in variability implementation, we use Linux as a case study. We study its build system, KBUILD, and extract the variability constraints in its Makef… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
28
0

Year Published

2014
2014
2023
2023

Publication Types

Select...
5
2
1

Relationship

2
6

Authors

Journals

citations
Cited by 30 publications
(30 citation statements)
references
References 15 publications
(44 reference statements)
0
28
0
Order By: Relevance
“…An interesting case is Linux where already 27 % of the hierarchy constraints are mirrored in the nested directory structure in the build system (i.e., file presence conditions) as shown in Table 4. We conjecture that this results from the highly nested code structure, where most individual directories and files are controlled by a hierarchy of Makefiles, almost mimicking the variability model hierarchy [11], [37].…”
Section: Recoverability Discussionmentioning
confidence: 96%
“…An interesting case is Linux where already 27 % of the hierarchy constraints are mirrored in the nested directory structure in the build system (i.e., file presence conditions) as shown in Table 4. We conjecture that this results from the highly nested code structure, where most individual directories and files are controlled by a hierarchy of Makefiles, almost mimicking the variability model hierarchy [11], [37].…”
Section: Recoverability Discussionmentioning
confidence: 96%
“…An interesting case is Linux where already 27 % of the hierarchy constraints are mirrored in the nested directory structure in the build system (i.e., file PCs). We conjecture that this results from the highly nested code structure, where most individual directories and files are controlled by a hierarchy of Makefiles, almost mimicking the variability model hierarchy [12,33]. On the other hand, although harder to recover, cross-tree constraints seem to be scattered across different places in the code (e.g., linker and type information), and seem more related to preventing build errors than hierarchy constraints are.…”
Section: O2: Recoverabilitymentioning
confidence: 98%
“…Our work focuses on C based systems with build-time variability using the build system and C preprocessor. Since many features are directly used in implementation files [33], we assume that many of the configuration constraints are reflected in the code. We design and implement a scalable approach to extract constraints statically.…”
Section: Introductionmentioning
confidence: 99%
“…No concept for composite units exists. The feature-to-code mapping resides in the build system [46,47]. Debian's basic units are packagesfile archives with helper scripts and a manifest.…”
Section: Variability Representationmentioning
confidence: 99%