A Study of Feature Scattering in the Linux Kernel

A Study of Feature Scattering in the Linux Kernel

Citation Author(s):
Leonardo
Passos
University of Waterloo, Canada
Rodrigo
Queiroz
University of Waterloo, Canada
Mukelabai
Mukelabai
University of Gothenburg, Sweden
Thorsten
Berger
University of Gothenburg, Sweden
Sven
Apel
University of Passau, Germany
Krzysztof
Czarnecki
University of Waterloo, Canada
Jesús
Padilla
SAP Waterloo, Canada
Submitted by:
Mukelabai Mukelabai
Last updated:
Wed, 12/12/2018 - 10:01
DOI:
10.21227/3fak-qz51
Data Format:
Links:
License:
Dataset Views:
77
Rating:
0
0 ratings - Please login to submit your rating.
Share / Embed Cite
Abstract: 

Feature code is often scattered across a software system. Scattering is not necessarily bad if used with care, as witnessed by systems with highly scattered features that evolved successfully. Feature scattering, often realized with a pre-processor, circumvents limitations of programming languages and software architectures. Unfortunately, little is known about the principles governing scattering in large and long-living software systems. We present a longitudinal study of feature scattering in the Linux kernel, complemented by a survey with 74, and interviews with nine Linux kernel developers. We analyzed almost eight years of the kernel's history, focusing on its largest subsystem: device drivers. We learned that the ratio of scattered features remained nearly constant and that most features were introduced without scattering. Yet, scattering easily crosses subsystem boundaries, and highly scattered outliers exist. Scattering often addresses a performance-maintenance tradeoff (alleviating complicated APIs), hardware design limitations, and avoids code duplication. While developers do not consciously enforce scattering limits, they actually improve the system design and refactor code, thereby mitigating pre-processor idiosyncrasies or reducing its use.

Instructions: 

 A Study of Feature Scattering in the Linux Kernel

Scattering database

    • Our longitudinal study is based on a feature-oriented analysis of the Linux kernel git repository. Using a custom made tool (see infrastructure), we convert the kernel git repository into a relational database, which we make available for download (scatdb_dump.zip).

    Sample classification and criteria

      •  Classification of a sample of scattered driver features (scat_grps.ods)
      •   Classification of all outlier features (outliers.ods)
      • The classification procedure of features as infrastructure or platform is documented here (criteria.tar.gz).

       

      All the documents made available in this section are compatible with Open Office: odt (for text documents) and ods (for spreadsheet documents).

       

      Infrastructure

      To create and analyze features in the Linux kernel, we rely on the following tools:

      • scat_linux (scat_linux_db.zip): a tool that, given a snapshot of a Linux kernel repository, generates a database with scattering information of Kconfig features (configuration options).
      • kconfig_info (kconfig_info.zip): a tool to recover information relative to a single feature.
      • A set of helper scripts in R and Bash, which can be downloaded from here (scripts.tar.gz).

      Survey and Interviews

       A summary report of the survey data is located in the survey folder and the interview guide is simiarly located in the interviews folder

      Dataset Files

      You must be an IEEE Dataport Subscriber to access these files. Login or subscribe now. Sign up to be a Beta Tester and receive a coupon code for a free subscription to IEEE DataPort!

      Thank you for rating this dataset!

      Please share additional details of your rating with the IEEE DataPort community by adding a comment.

      Embed this dataset on another website

      Copy and paste the HTML code below to embed your dataset:

      Share via email or social media

      Click the buttons below:

      facebooktwittermailshare
      [1] Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, Jesús Padilla, "A Study of Feature Scattering in the Linux Kernel", IEEE Dataport, 2018. [Online]. Available: http://dx.doi.org/10.21227/3fak-qz51. Accessed: Mar. 29, 2020.
      @data{3fak-qz51-18,
      doi = {10.21227/3fak-qz51},
      url = {http://dx.doi.org/10.21227/3fak-qz51},
      author = {Leonardo Passos; Rodrigo Queiroz; Mukelabai Mukelabai; Thorsten Berger; Sven Apel; Krzysztof Czarnecki; Jesús Padilla },
      publisher = {IEEE Dataport},
      title = {A Study of Feature Scattering in the Linux Kernel},
      year = {2018} }
      TY - DATA
      T1 - A Study of Feature Scattering in the Linux Kernel
      AU - Leonardo Passos; Rodrigo Queiroz; Mukelabai Mukelabai; Thorsten Berger; Sven Apel; Krzysztof Czarnecki; Jesús Padilla
      PY - 2018
      PB - IEEE Dataport
      UR - 10.21227/3fak-qz51
      ER -
      Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, Jesús Padilla. (2018). A Study of Feature Scattering in the Linux Kernel. IEEE Dataport. http://dx.doi.org/10.21227/3fak-qz51
      Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, Jesús Padilla, 2018. A Study of Feature Scattering in the Linux Kernel. Available at: http://dx.doi.org/10.21227/3fak-qz51.
      Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, Jesús Padilla. (2018). "A Study of Feature Scattering in the Linux Kernel." Web.
      1. Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, Jesús Padilla. A Study of Feature Scattering in the Linux Kernel [Internet]. IEEE Dataport; 2018. Available from : http://dx.doi.org/10.21227/3fak-qz51
      Leonardo Passos, Rodrigo Queiroz, Mukelabai Mukelabai, Thorsten Berger, Sven Apel, Krzysztof Czarnecki, Jesús Padilla. "A Study of Feature Scattering in the Linux Kernel." doi: 10.21227/3fak-qz51