An empirical study of operating systems errors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
A taxonomy of variability realization techniques: Research Articles
Software—Practice & Experience
Software Product Line Engineering: Foundations, Principles and Techniques
Software Product Line Engineering: Foundations, Principles and Techniques
GNU Make: A Program for Directing Recompilation, for version 3.81
GNU Make: A Program for Directing Recompilation, for version 3.81
Proceedings of the 30th international conference on Software engineering
Configuration Lifting: Verification meets Software Configuration
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
SAT-based analysis of feature models is easy
Proceedings of the 13th International Software Product Line Conference
An analysis of the variability in forty preprocessor-based software product lines
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Variability modeling in the real: a perspective from the operating systems domain
Proceedings of the IEEE/ACM international conference on Automated software engineering
Efficient extraction and analysis of preprocessor-based variability
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Delta-oriented programming of software product lines
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Feature-to-code mapping in two large product lines
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Faults in linux: ten years later
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Proceedings of the sixth conference on Computer systems
Reverse engineering feature models
Proceedings of the 33rd International Conference on Software Engineering
Configuration coverage in the analysis of large-scale system software
PLOS '11 Proceedings of the 6th Workshop on Programming Languages and Operating Systems
Variability-aware parsing in the presence of lexical macros and conditional compilation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Make it or Break it: Mining Anomalies from Linux Kbuild
WCRE '11 Proceedings of the 2011 18th Working Conference on Reverse Engineering
Understanding linux feature distribution
Proceedings of the 2012 workshop on Modularity in Systems Software
Mining Kbuild to Detect Variability Anomalies in Linux
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Automatic OS kernel TCB reduction by leveraging compile-time configurability
HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
Feature-oriented software evolution
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
A study of variability spaces in open source software
Proceedings of the 2013 International Conference on Software Engineering
Linux variability anomalies: what causes them and how do they get fixed?
Proceedings of the 10th Working Conference on Mining Software Repositories
Investigating preprocessor-based syntax errors
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Understanding the genetic makeup of Linux device drivers
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Extracting feature model changes from the Linux kernel using FMDiff
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
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.