• DocumentCode
    2330278
  • Title

    Make it or Break it: Mining Anomalies from Linux Kbuild

  • Author

    Nadi, Sarah ; Holt, Ric

  • Author_Institution
    David R. Cheriton Sch. of Comput. Sci., Univ. of Waterloo, Waterloo, ON, Canada
  • fYear
    2011
  • fDate
    17-20 Oct. 2011
  • Firstpage
    315
  • Lastpage
    324
  • Abstract
    The Linux kernel has long been an interesting subject of study in terms of its source code. Recently, it has also been studied in terms of its variability since the Linux kernel can be configured to include or omit certain features according to the user´s selection. These features are defined in the Kconfig files included in the Linux kernel code. Several articles study both the source code and Kconfig files to ensure variability is correctly implemented and to detect anomalies. However, these studies ignore the Make files which are another important component that controls the variability of the Linux kernel. The Make files are responsible for specifying what actually gets compiled and built into the final kernel. With over 1,300 Make files, more than 35,000 source code files, and over 10,000 Kconfig features, inconsistencies and anomalies are inevitable. In this paper, we explore the Linux´s Make files (Kbuild) to detect anomalies. We develop three rules to identify anomalies in the Make files. Using these rules, we detect 89 anomalies in the latest release of the Linux kernel (2.6.38.6). We also perform a longitudinal analysis to study the evolution of Kbuild anomalies over time, and the solutions implemented to correct them. Our results show that many of the anomalies we detect are eventually corrected in future releases. This work is a first attempt at exploring the consistency of the variability implemented in Kbuild with the rest of the kernel. Such work opens the door for automatic anomaly detection in build systems which can save developers time in the future.
  • Keywords
    Linux; operating system kernels; source coding; Kconfig files; Linux Kbuild; Linux kernel code; longitudinal analysis; source code files; Aerospace electronics; Buildings; Kernel; Linux; Semantics; Syntactics; Universal Serial Bus; Build Systems; Kbuild; Mining software repositories; Variability;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering (WCRE), 2011 18th Working Conference on
  • Conference_Location
    Limerick
  • ISSN
    1095-1350
  • Print_ISBN
    978-1-4577-1948-6
  • Type

    conf

  • DOI
    10.1109/WCRE.2011.46
  • Filename
    6079857