skip to main content
research-article

Analysing the Kconfig semantics and its analysis tools

Published:26 October 2015Publication History
Skip Abstract Section

Abstract

The Linux kernel is often used as a real world case study to demonstrate novel Software Product Line Engineering research methods. An important point in this is often the analysis of the Kconfig semantics. However, we detected that the semantics of Kconfig is rather unclear and has many special cases, which are not documented in its short specification. We performed a systematic analysis to uncover the correct behaviour of Kconfig and present the results, which are necessary for applying semantically correct analyses. Further, we analyse existing analysis tools of the research community whether they are aware of the correct semantics of Kconfig. These analyses can be used for improving existing analysis tools as well as decision support for selecting an appropriate tool for a specific analysis. In summary we contribute to a better understanding of Kconfig in the research community to improve the validity of evaluations based on Linux.

References

  1. T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. Variability Modeling in the Systems Software Domain. Technical Report GSDLAB-TR 2012-07-06, Generative Software Development Laboratory, University of Waterloo, 2012.Google ScholarGoogle Scholar
  2. T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. A Study of Variability Models and Languages in the Systems Software Domain. IEEE Transactions on Software Engineering, 39(12):1611–1640, Dec 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. CADOS Undertaker. http://vamos.informatik.uni-erlangen. de/trac/undertaker. Last visited 15.05.2015.Google ScholarGoogle Scholar
  4. C. Dietrich, R. Tartler, W. Schröder-Preikschat, and D. Lohmann. A Robust Approach for Variability Extraction from the Linux Build System. In Proceedings of the 16th International Software Product Line Conference (SPLC ’12), volume 1, pages 21–30, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. N. Dintzner, A. Van Deursen, and M. Pinzger. Extracting Feature Model Changes from the Linux Kernel Using FMDiff. In Proceedings of the 8th International Workshop on Variability Modelling of Software-Intensive Systems (VaMos’14), pages 22:1–22:8, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. H. Eichelberger and K. Schmid. Mapping the design-space of textual variability modeling languages: A refined analysis. International Journal of Software Tools for Technology Transfer, pages 1–26, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. El-Sharkawy, A. Krafczyk, N. Asad, and K. Schmid. Analysing the KConfig Semantic and Related Analysis Tools. Technical Report 1/2015, SSE 1/15/E, Institute of Computer Science, University of Hildesheim, 2015. Available at https://sse.uni-hildesheim. de/kconfig-study.Google ScholarGoogle Scholar
  8. Extracts Repository. https://code.google.com/p/linuxvariability-analysis-tools/source/browse/?repo= extracts, 2010. Last visited 14.06.2015.Google ScholarGoogle Scholar
  9. Kconfig Language Specification. https://www.kernel.org/doc/ Documentation/kbuild/kconfig-language.txt, 2015.Google ScholarGoogle Scholar
  10. Last visited 04.03.2015.Google ScholarGoogle Scholar
  11. KconfigExtracts. https://code.google.com/p/linuxvariability-analysis-tools/wiki/KconfigExtracts, 2012. Last visited 13.06.2015.Google ScholarGoogle Scholar
  12. kconfigreader. https://github.com/ckaestne/kconfigreader, 2015. Last visited 15.05.2015.Google ScholarGoogle Scholar
  13. C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger. Variability-aware Parsing in the Presence of Lexical Macros and Conditional Compilation. In Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’11), pages 805–824, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Linux Variability Analysis Tools (LVAT). http://gsd.uwaterloo. ca/node/313. Last visited 15.06.2015.Google ScholarGoogle Scholar
  15. S. Nadi, T. Berger, C. Kästner, and K. Czarnecki. Mining Configuration Constraints: Static Analyses and Empirical Results. In Proceedings of the 36th International Conference on Software Engineering (ICSE 2014), pages 140–151, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Satisfiability Suggested Format. Satisfiability Suggested Format. ftp://dimacs.rutgers.edu/pub/challenge/ satisfiability/doc/satformat.dvi, 1993.Google ScholarGoogle Scholar
  17. Last visited 04.03.2015.Google ScholarGoogle Scholar
  18. S. She and T. Berger. Formal Semantics of the Kconfig Language. Technical note, University of Waterloo, 2010.Google ScholarGoogle Scholar
  19. J. Sincero, R. Tartler, D. Lohmann, and W. Schröder-Preikschat. Efficient Extraction and Analysis of Preprocessor-Based Variability. In E. Visser, editor, Proceedings of the 9th International Conference on Generative Programming and Component Engineering (GPCE ’10), pages 33–42, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. TypeChef. http://ckaestne.github.io/TypeChef/, 2013. Last visited 12.06.2015.Google ScholarGoogle Scholar
  21. C. Zengler and W. Küchlin. Encoding the Linux kernel Configuration in Propositional Logic. In Proceedings of the 19th European Conference on Artificial Intelligence (ECAI 2010) Workshop on Configuration, volume 2010, pages 51–56, 2010.Google ScholarGoogle Scholar

Index Terms

  1. Analysing the Kconfig semantics and its analysis tools

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!