A Robust Approach for Variability Extraction from the Linux Build System

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer review

Authors

  • Christian Dietrich
  • Reinhard Tartler
  • Wolfgang Schröder-Preikschat
  • Daniel Lohmann

External Research Organisations

  • Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU Erlangen-Nürnberg)
View graph of relations

Details

Original languageEnglish
Title of host publicationSPLC '12: Proceedings of the 16th International Software Product Line Conference
Pages21-30
Number of pages10
Volume1
Publication statusPublished - Sept 2012
Externally publishedYes
Event16th International Software Product Line Conference, SPLC 2012 - Salvador, Brazil
Duration: 2 Sept 20127 Sept 2012

Abstract

With more than 11,000 optional and alternative features, the Linux kernel is a highly configurable piece of software. Linux is generally perceived as a textbook example for preprocessor-based product derivation, but more than 65 percent of all features are actually handled by the build system. Hence, variability-aware static analysis tools have to take the build system into account. However, extracting variability information from the build system is difficult due to the declarative and turing-complete MAKE language. Existing approaches based on text processing do not cover this challenges and tend to be tailored to a specific Linux version and architecture. This renders them practically unusable as a basis for variability-aware tool support - Linux is a moving target! We describe a robust approach for extracting implementation variability from the Linux build system. Instead of extracting the variability information by a text-based analysis of all build scripts, our approach exploits the build system itself to produce this information. As our results show, our approach is robust and works for all versions and architectures from the (git-)history of Linux.

Keywords

    Build systems, Configurability, Kbuild, Linux, Maintenance, Static analysis, VAMOS1

ASJC Scopus subject areas

Cite this

A Robust Approach for Variability Extraction from the Linux Build System. / Dietrich, Christian; Tartler, Reinhard; Schröder-Preikschat, Wolfgang et al.
SPLC '12: Proceedings of the 16th International Software Product Line Conference. Vol. 1 2012. p. 21-30.

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer review

Dietrich, C, Tartler, R, Schröder-Preikschat, W & Lohmann, D 2012, A Robust Approach for Variability Extraction from the Linux Build System. in SPLC '12: Proceedings of the 16th International Software Product Line Conference. vol. 1, pp. 21-30, 16th International Software Product Line Conference, SPLC 2012, Salvador, Brazil, 2 Sept 2012. https://doi.org/10.1145/2362536.2362544
Dietrich, C., Tartler, R., Schröder-Preikschat, W., & Lohmann, D. (2012). A Robust Approach for Variability Extraction from the Linux Build System. In SPLC '12: Proceedings of the 16th International Software Product Line Conference (Vol. 1, pp. 21-30) https://doi.org/10.1145/2362536.2362544
Dietrich C, Tartler R, Schröder-Preikschat W, Lohmann D. A Robust Approach for Variability Extraction from the Linux Build System. In SPLC '12: Proceedings of the 16th International Software Product Line Conference. Vol. 1. 2012. p. 21-30 doi: 10.1145/2362536.2362544
Dietrich, Christian ; Tartler, Reinhard ; Schröder-Preikschat, Wolfgang et al. / A Robust Approach for Variability Extraction from the Linux Build System. SPLC '12: Proceedings of the 16th International Software Product Line Conference. Vol. 1 2012. pp. 21-30
Download
@inproceedings{3fce823f9d3d4e5da1da3614f99e1251,
title = "A Robust Approach for Variability Extraction from the Linux Build System",
abstract = "With more than 11,000 optional and alternative features, the Linux kernel is a highly configurable piece of software. Linux is generally perceived as a textbook example for preprocessor-based product derivation, but more than 65 percent of all features are actually handled by the build system. Hence, variability-aware static analysis tools have to take the build system into account. However, extracting variability information from the build system is difficult due to the declarative and turing-complete MAKE language. Existing approaches based on text processing do not cover this challenges and tend to be tailored to a specific Linux version and architecture. This renders them practically unusable as a basis for variability-aware tool support - Linux is a moving target! We describe a robust approach for extracting implementation variability from the Linux build system. Instead of extracting the variability information by a text-based analysis of all build scripts, our approach exploits the build system itself to produce this information. As our results show, our approach is robust and works for all versions and architectures from the (git-)history of Linux.",
keywords = "Build systems, Configurability, Kbuild, Linux, Maintenance, Static analysis, VAMOS1",
author = "Christian Dietrich and Reinhard Tartler and Wolfgang Schr{\"o}der-Preikschat and Daniel Lohmann",
year = "2012",
month = sep,
doi = "10.1145/2362536.2362544",
language = "English",
isbn = "9781450310956",
volume = "1",
pages = "21--30",
booktitle = "SPLC '12: Proceedings of the 16th International Software Product Line Conference",
note = "16th International Software Product Line Conference, SPLC 2012 ; Conference date: 02-09-2012 Through 07-09-2012",

}

Download

TY - GEN

T1 - A Robust Approach for Variability Extraction from the Linux Build System

AU - Dietrich, Christian

AU - Tartler, Reinhard

AU - Schröder-Preikschat, Wolfgang

AU - Lohmann, Daniel

PY - 2012/9

Y1 - 2012/9

N2 - With more than 11,000 optional and alternative features, the Linux kernel is a highly configurable piece of software. Linux is generally perceived as a textbook example for preprocessor-based product derivation, but more than 65 percent of all features are actually handled by the build system. Hence, variability-aware static analysis tools have to take the build system into account. However, extracting variability information from the build system is difficult due to the declarative and turing-complete MAKE language. Existing approaches based on text processing do not cover this challenges and tend to be tailored to a specific Linux version and architecture. This renders them practically unusable as a basis for variability-aware tool support - Linux is a moving target! We describe a robust approach for extracting implementation variability from the Linux build system. Instead of extracting the variability information by a text-based analysis of all build scripts, our approach exploits the build system itself to produce this information. As our results show, our approach is robust and works for all versions and architectures from the (git-)history of Linux.

AB - With more than 11,000 optional and alternative features, the Linux kernel is a highly configurable piece of software. Linux is generally perceived as a textbook example for preprocessor-based product derivation, but more than 65 percent of all features are actually handled by the build system. Hence, variability-aware static analysis tools have to take the build system into account. However, extracting variability information from the build system is difficult due to the declarative and turing-complete MAKE language. Existing approaches based on text processing do not cover this challenges and tend to be tailored to a specific Linux version and architecture. This renders them practically unusable as a basis for variability-aware tool support - Linux is a moving target! We describe a robust approach for extracting implementation variability from the Linux build system. Instead of extracting the variability information by a text-based analysis of all build scripts, our approach exploits the build system itself to produce this information. As our results show, our approach is robust and works for all versions and architectures from the (git-)history of Linux.

KW - Build systems

KW - Configurability

KW - Kbuild

KW - Linux

KW - Maintenance

KW - Static analysis

KW - VAMOS1

UR - http://www.scopus.com/inward/record.url?scp=84867450368&partnerID=8YFLogxK

U2 - 10.1145/2362536.2362544

DO - 10.1145/2362536.2362544

M3 - Conference contribution

AN - SCOPUS:84867450368

SN - 9781450310956

VL - 1

SP - 21

EP - 30

BT - SPLC '12: Proceedings of the 16th International Software Product Line Conference

T2 - 16th International Software Product Line Conference, SPLC 2012

Y2 - 2 September 2012 through 7 September 2012

ER -