Project Details
CADOS: Configurability-Aware Development of Operating Systems
Applicant
Professor Dr.-Ing. Daniel Lohmann
Subject Area
Security and Dependability, Operating-, Communication- and Distributed Systems
Term
since 2014
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 236869097
Purpose of CADOS is to research scalable methods and techniques to master the variability of (and in) system software. Linux 4.2, for example, offers more than fifteen thousand statically configurable features for problem-specific adaptation, which are technically implemented and distributed over several levels of the generation process (configuration system, build system, C preprocessor, linker, ...). The resulting variability is no longer manageable in practice.In the current funding phase, this has been examined with focus on (existing) static variability and its implementation across multiple levels and artifact languages from the viewpoint of system-software develpers. The devloped methods and tools significantly improve static analysis in highly configurable, system-related software, as well as the detection of (cross-level) variability errors in their implementation ("#ifdef bugs").From the "developer's point of view" (provider of variability), this is a decisive step towards the comprehensive mastery of static variability in system software.In the following funding phase, the focus shall be expanded to forms of non-static variability, but in particular to the "user view" (professional users of variability): Manually selecting the "right" features for a specific problem from tens of thousands of configurable features for the operating system is already a nearly inpossible undertaking. In addition, there is an extensive stack of other system software (libraries, server processes, utilities) that must be taken into account as well for the specific application.Hence, maximum configurations (standard distributions) are applied in practice that carry a lot of unneeded and costly "cruft", while there are still multiple variants required due to genuinely alternatvive features (availability of special instructions, single or multicore, interrupt controller used). The resulting system software is both “too big” (with regard to options that are not required) and “too small” (with regard to required but context-dependent alternatives).The subject of research for the following funding phase is therefore the analysis, implementation and application of "semi-dynamic variability" as a means of realizing flexible and context-dependent optional and alternative features in system software, both at the language and compiler level and with regard to the necessary support from the operating system.The other subject of research is "automatic system-wide pruning", through which the entire system software stack is to be analyzed across layer boundaries in order to automatically configure and trim the resulting system software with little manual effort.In the research we will apply mostly constructive methods in the domains of operating-system construction (kernel, linker and loader, monitoring) and compilers (language, static analysis and code generation). The subject of research is open-source system software.
DFG Programme
Research Grants