UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:       
 
 Darstellung
 
Druckansicht

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 

Lightweight Extraction of Variability Information from Linux Makefiles (CADOS_MINIGOLEM)

Art der Arbeit:
Studien-/Bachelor-/Diplom-/Masterarbeit
Institution:
Lehrstuhl für Informatik 4 (Systemsoftware)
Betreuer:
Lohmann, Daniel
Lehrstuhl für Informatik 4 (Systemsoftware)
E-Mail: lohmann@cs.fau.de
Beschreibung der Arbeit:

Context
Linux, as well as other system software, offers a great deal of static configurability to tailor it with respect to a specific application or hardware platform. Linux 3.2, for instance, provides (via its Kconfig models and tools) more than twelve thousand configurable features for this purpose. Technically, the implementation of all these features is spread over multiple levels of the software generation process, including the configuration system, build system, C preprocessor, compiler, linker, and more. This enormous variablity has become unmanageable in practice; in the case of Linux it already has led to thousands of variability defects within the lifetime of Linux (1). With this term, we denote bugs and other quality issues related to the implementation of variable features. Variability defects manifest as dead or undead #ifdef-blocks in the code, that is, as seemingly configuration-conditional blocks that, however, can never be selected or deselected.

In the VAMOS/CADOS project we investigate scaleable methods and tools to address these issues. Our findings have already led to more than 100 accepted patches in Linux (1, 2). Key element is the undertaker tool which searches and reports dead und undead conditional blocks.

Goal of the Thesis Project
In Linux, conditional compilation is not only applied on the level of #ifdef-blocks, but also on the level of complete source files: The Linux Kbuild system, which is based on GNU make, decides upon the set of selected features on the source files that need to be compiled and linked. For the work of the undertaker, it is helpful to extract these file inferences from the build system. We have implemented an approach to extract these file inferences by systematically probing the build system (3). We could show, that this leads to more precise and particularly robust (with respect to Linux architecture and version) results than previous parsing-based approaches. However, this precision and robustness is bought by a computational overhead too high to be suitable for a practical development tool.

The goal of the thesis project is to re-examing parsing-based approaches to extract variability information (file inferences) from the Linux build system. The resulting design and implementation shall be as robust (with respect to Linux architecture and version) as the existing approach, but – in favor of better run-time – not necessarily as precise.
Requirements

  • Good programming skills (C/C++, Python)

  • Familarity with Linux and its build process

  • Experiences and knowledge about GNU make and the respective language

References

Weitere Informationen zur Arbeit:
https://www4.cs.fau.de/Research/CADOS/
Schlagwörter:
CADOS, VAMOS
Bearbeitungszustand:
Die Arbeit ist bereits abgeschlossen.
Bearbeiter: Ruprecht Andreas
Abgegeben am: 27.04.2015
Ausarbeitung...

UnivIS ist ein Produkt der Config eG, Buckenhof