Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Bugs as deviant behavior: a general approach to inferring errors in systems code
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Embedded Software Development with eCos
Embedded Software Development with eCos
Back to the future: a retroactive study of aspect evolution in operating system code
Proceedings of the 2nd international conference on Aspect-oriented software development
Think: A Software Framework for Component-based Operating System Kernels
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Preprocessor Conditional Removal by Simple Partial Evaluation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
C/C++ Conditional Compilation Analysis Using Symbolic Execution
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
The PURE Family of Object-Oriented Operating Systems for Deeply Embedded Systems
ISORC '99 Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Feature-Oriented Programming and the AHEAD Tool Suite
Proceedings of the 26th International Conference on Software Engineering
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Software Product Line Engineering: Foundations, Principles and Techniques
Software Product Line Engineering: Foundations, Principles and Techniques
A quantitative analysis of aspects in the eCos kernel
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Knit: component composition for systems software
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
/*icomment: bugs or bad comments?*/
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
From uncertainty to belief: inferring the specification within
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Feature Diagrams and Logics: There and Back Again
SPLC '07 Proceedings of the 11th International Software Product Line Conference
Documenting and automating collateral evolutions in linux device drivers
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Proceedings of the 30th international conference on Software engineering
Tracking code patterns over multiple software versions with Herodotos
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
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
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Efficient extraction and analysis of preprocessor-based variability
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Automated reasoning on feature models
CAiSE'05 Proceedings of the 17th international conference on Advanced Information Systems 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
Configuration coverage in the analysis of large-scale system software
ACM SIGOPS Operating Systems Review
Cool features and tough decisions: a comparison of variability modeling approaches
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
AspectVHDL stage 1: the prototype of an aspect-oriented hardware description language
Proceedings of the 2012 workshop on Modularity in Systems Software
Understanding linux feature distribution
Proceedings of the 2012 workshop on Modularity in Systems Software
SuperC: parsing all of C by taming the preprocessor
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
CiAO/IP: a highly configurable aspect-oriented IP stack
Proceedings of the 10th international conference on Mobile systems, applications, and services
A robust approach for variability extraction from the Linux build system
Proceedings of the 16th International Software Product Line Conference - Volume 1
Family-based deductive verification of software product lines
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
A variability-aware module system
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Automatic OS kernel TCB reduction by leveraging compile-time configurability
HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
A survey of variability modeling in industrial practice
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
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
Scalable analysis of variable software
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
A comparison of product-based, feature-based, and family-based type checking
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Investigating preprocessor-based syntax errors
Proceedings of the 12th international conference on Generative programming: concepts & experiences
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 |
Much system software can be configured at compile time to tailor it with respect to a broad range of supported hardware architectures and application domains. A good example is the Linux kernel, which provides more than 10,000 configurable features, growing rapidly. From the maintenance point of view, compile-time configurability imposes big challenges. The configuration model (the selectable features and their constraints as presented to the user) and the configurability that is actually implemented in the code have to be kept in sync, which, if performed manually, is a tedious and error-prone task. In the case of Linux, this has led to numerous defects in the source code, many of which are actual bugs. We suggest an approach to automatically check for configurability-related implementation defects in large-scale configurable system software. The configurability is extracted from its various implementation sources and examined for inconsistencies, which manifest in seemingly conditional code that is in fact unconditional. We evaluate our approach with the latest version of Linux, for which our tool detects 1,776 configurability defects, which manifest as dead/superfluous source code and bugs. Our findings have led to numerous source-code improvements and bug fixes in Linux: 123 patches (49 merged) fix 364 defects, 147 of which have been confirmed by the corresponding Linux developers and 20 as fixing a new bug.