skip to main content
10.1145/2724525.2724575acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Feature scattering in the large: a longitudinal study of Linux kernel device drivers

Published: 16 March 2015 Publication History

Abstract

Feature code is often scattered across wide parts of the code base. But, scattering is not necessarily bad if used with care—in fact, systems with highly scattered features have evolved successfully over years. Among others, feature scattering allows developers to circumvent limitations in programming languages and system design. Still, little is known about the characteristics governing scattering, which factors influence it, and practical limits in the evolution of large and long-lived systems. We address this issue with a longitudinal case study of feature scattering in the Linux kernel. We quantitatively and qualitatively analyze almost eight years of its development history, focusing on scattering of device-driver features. Among others, we show that, while scattered features are regularly added, their proportion is lower than non-scattered ones, indicating that the kernel architecture allows most features to be integrated in a modular manner. The median scattering degree of features is constant and low, but the scattering-degree distribution is heavily skewed. Thus, using the arithmetic mean is not a reliable threshold to monitor the evolution of feature scattering. When investigating influencing factors, we find that platform-driver features are 2.5 times more likely to be scattered across architectural (subsystem) boundaries when compared to non-platform ones. Their use illustrates a maintenance-performance trade-off in creating architectures as for Linux kernel device drivers.

References

[1]
Online Appendix. http://lpassos.bitbucket.org/ modularity15/.
[2]
S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. IEEE Transactions on Software Engineering, 34(2):162–180, 2008.
[3]
S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, 2013.
[4]
T. Berger, S. She, R. Lotufo, K. Czarnecki, and A. W ˛ asowski. Featureto-Code Mapping in Two Large Product Lines. In Proceedings of the 14th International Conference on Software Product Lines, pages 498–499. Springer, 2010.
[5]
T. Berger, S. She, R. Lotufo, A. W ˛ asowski, and K. Czarnecki. Variability Modeling in the Real: A Perspective from the Operating Systems Domain. In Proceedings of the 26th International Conference on Automated Software Engineering, pages 73–82. ACM, 2010.
[6]
T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. A Study of Variability Models and Languages in the Systems Software Domain. Transactions on Software Engineering, 39(12):1611–1640, 2013.
[7]
T. Chaikalis, A. Chatzigeorgiou, and G. Examiliotou. Investigating the Effect of Evolution and Refactorings on Feature Scattering. Software Quality Journal, pages 1–27, 2013.
[8]
J. Conway, D. Eddelbuettel, T. Nishiyama, S. Kumar, and T. Neil. Package ’RPostgreSQL’, 2013. R package version 0.4.
[9]
J. Corbet, G. Kroah-Hartman, and A. McPherson. Linux Kernel Development: How Fast It is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It. http://www.linuxfoundation.org/publications/ linux-foundation/who-writes-linux-2013. Last seen: February 14, 2015.
[10]
J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O’Reilly, 3rd edition, 2005.
[11]
M. V. Couto, M. T. Valente, and E. Figueiredo. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In Proceedings of the 15th European Conference on Software Maintenance and Reengineering, pages 191–200. IEEE, 2011.
[12]
C. Dietrich, R. Tartler, W. Schröder-Preikshat, and D. Lohmann. Understanding Linux Feature Distribution. In Proceedings of the 2nd Workshop on Modularity in Systems Software, pages 15–20. ACM, 2012.
[13]
M. Eaddy, A. Aho, and G. C. Murphy. Identifying, Assigning, and Quantifying Crosscutting Concerns. In Proceedings of the 1st International Workshop on Assessment of Contemporary Modularization Techniques, pages 2–7. IEEE, 2007.
[14]
M. Eaddy, T. Zimmermann, K. D. Sherwood, V. Garg, G. C. Murphy, N. Nagappan, and A. V. Aho. Do Crosscutting Concerns Cause Defects? IEEE Transactions on Software Engineering, 34(4):497–515, 2008.
[15]
J.-M. Favre. Preprocessors from an Abstract Point of View. In Proceedings of the 12th International Conference on Software Maintenance, pages 329–339. IEEE, 1996.
[16]
D. G. Feitelson. Perpetual Development: A Model of the Linux Kernel Life Cycle. Journal of Systems and Software, 85(4):859–875, 2012.
[17]
E. Figueiredo, C. Sant’Anna, A. Garcia, T. T. Bartolomei, W. Cazzola, and A. Marchetto. On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework. In Proceedings of the 12th European Conference on Software Maintenance and Reengineering, pages 183–192. IEEE, 2008.
[18]
E. Figueiredo, B. C. da Silva, C. Sant’Anna, A. F. Garcia, J. Whittle, and D. J. Nunes. Crosscutting Patterns and Design Stability: An Exploratory Analysis. In Proceedings of the 17th International Conference on Program Comprehension, pages 138–147. IEEE, 2009.
[19]
B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer, 1st edition, 1997.
[20]
M. W. Godfrey and Q. Tu. Evolution in Open Source Software: A Case Study. In Proceedings of the 16th International Conference on Software Maintenance, pages 131–142. IEEE, 2000.
[21]
G. Grothendieck. Package ’sqldf’, 2014. R package version 0.4-7.1.
[22]
Hewlett-Packard Corp., Intel Corp., Microsoft Corp., Phoenix Technologies Ltd. and Toshiba Corp. Advanced Configuration and Power Interface Specification, Revision 5.0. http://www.acpi.info/ spec50a.htm. Last seen: February 14th, 2015.
[23]
M. Hubert and E. Vandervieren. An Adjusted Boxplot for Skewed Distributions. Computational Statistics & Data Analysis, 52(12):5186–– 5201, 2008.
[24]
C. Izurieta and J. Bieman. The Evolution of FreeBSD and Linux. In Proceedings of the 5th International Symposium on Empirical Software Engineering, pages 204–211. ACM, 2006.
[25]
M. T. Jones. Anatomy of the Linux Kernel. IBM Developer Works, 2009.
[26]
C. Kästner, S. Apel, and K. Ostermann. The Road to Feature Modularity? In Proceedings of the 15th International Software Product Line Conference, pages 5:1–5:8. ACM, 2011.
[27]
Kbuild. The Kernel Build Infrastructure. www.kernel.org/doc/ Documentation/kbuild. Last seen: February 14th, 2015.
[28]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of the 11th European Conference on Object-Oriented Programming, pages 220–242. Springer, 1997.
[29]
G. Krone, M.; Snelting. On the Inference of Configuration Structures from Source Code. In Proceedings of the 6th International Conference on Software Engineering, pages 49–57. IEEE, 1994.
[30]
J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines. In Proceedings of the 32nd International Conference on Software Engineering, pages 105–114. ACM, 2010.
[31]
J. Liebig, C. Kästner, and S. Apel. Analyzing the Discipline of Preprocessor Annotations in 30 Million Lines of C Code. In Proceedings of the 10th International Conference on Aspect-Oriented Software Development, pages 191–202. ACM, 2011.
[32]
R. Lotufo, S. She, T. Berger, K. Czarnecki, and A. Wasowski. Evolution of the Linux Kernel Variability Model. In Proceedings of the 14th International Conference on Software Product Lines, pages 136–150. Springer, 2010.
[33]
D. S. Moore, G. P. McCabe, and B. Craig. Introduction to the Practice of Statistics. W. H. Freeman, 6th edition, 2009.
[34]
S. Nadi and R. Holt. The Linux Kernel: A Case Study of Build System Variability. Journal of Software: Evolution and Process, 26(8):730–746, 2014.
[35]
P. Oliveira, M. T. Valente, and F. P. Lima. Extracting Relative Thresholds for Source Code Metrics. In Proceedings of the Conference on Software Maintenance, Reengineering and Reverse Engineering, pages 254–263. IEEE, 2014.
[36]
L. Passos and K. Czarnecki. A Dataset of Feature Additions and Feature Removals from the Linux Kernel. In Proceedings of the 11th Working Conference on Mining Software Repositories, pages 376–379. ACM, 2014.
[37]
L. Passos, K. Czarnecki, S. Apel, A. W ˛ asowski, C. Kästner, and J. Guo. Feature-Oriented Software Evolution. In Proceedings of the 7th International Workshop on Variability Modelling of Software-Intensive Systems, pages 17:1–17:8. ACM, 2013.
[38]
L. Passos, L. Teixeira, N. Dintzner, S. Apel, A. W ˛ asowski, K. Czarnecki, P. Borba, and J. Guo. Coevolution of Variability Models and Related Artifacts: A Fresh Look at Evolution Patterns in the Linux Kernel. Empirical Software Engineering, 2015. To appear.
[39]
R. Queiroz B., L. Passos, M. T. Valente, S. Apel, and K. Czarnecki. Does Feature Scattering Follow Power-Law Distributions? An Investigation of Five Pre-Processor-Based Software Families. In Proceedings of the 6th International Workshop on Feature-Oriented Software Development, pages 23–29. ACM, 2014.
[40]
M. P. Robillard and G. C. Murphy. Representing Concerns in Source Code. Transactions on Software Engineering Methodologies, 16(1), 2007.
[41]
J. Sincero, H. Schirmeier, W. Schröder-Preikschat, and O. Spinczyk. Is the Linux Kernel a Software Product Line? In Proceedings of the International Workshop on Open Source Software and Product Lines, pages 30–33, 2007.
[42]
H. Spencer and G. Collyer. #ifdef Considered Harmful, or Portability Experience with C News. In USENIX, pages 185–197, 1992.
[43]
K. Sullivan, W. G. Griswold, Y. Song, Y. Cai, M. Shonle, N. Tewari, and H. Rajan. Information Hiding Interfaces for Aspect-Oriented Design. In Proceedings of the 10th European Software Engineering Conference, pages 166–175. ACM, 2005.
[44]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In Proceedings of the 21st International Conference on Software Engineering, pages 107–119. ACM, 1999.
[45]
R. Vasa, M. Lumpe, P. Branch, and O. Nierstrasz. Comparative Analysis of Evolving Software Systems Using the Gini Coefficient. In Proceedings of the 25th International Conference on Software Maintenance, pages 179–188. IEEE, 2013.
[46]
S. Venkateswaran. Essential Linux Device Drivers. Prentice Hall Press, 1st edition, 2008.

Cited By

View all
  • (2025)FM-PRO: A Feature Modeling ProcessIEEE Transactions on Software Engineering10.1109/TSE.2024.351363551:1(262-282)Online publication date: 1-Jan-2025
  • (2024)Virtual Platform: Effective and Seamless Variability Management for Software SystemsIEEE Transactions on Software Engineering10.1109/TSE.2024.340622450:11(2753-2785)Online publication date: Nov-2024
  • (2022)Different, Really! A comparison of Highly-Configurable Systems and Single SystemsInformation and Software Technology10.1016/j.infsof.2022.107035152(107035)Online publication date: Dec-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MODULARITY 2015: Proceedings of the 14th International Conference on Modularity
March 2015
145 pages
ISBN:9781450332491
DOI:10.1145/2724525
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 March 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Feature
  2. Linux kernel
  3. Preprocessor
  4. Scattering

Qualifiers

  • Research-article

Conference

Modularity '15
Modularity '15: 14th International Conference on Modularity
March 16 - 19, 2015
CO, Fort Collins, USA

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)FM-PRO: A Feature Modeling ProcessIEEE Transactions on Software Engineering10.1109/TSE.2024.351363551:1(262-282)Online publication date: 1-Jan-2025
  • (2024)Virtual Platform: Effective and Seamless Variability Management for Software SystemsIEEE Transactions on Software Engineering10.1109/TSE.2024.340622450:11(2753-2785)Online publication date: Nov-2024
  • (2022)Different, Really! A comparison of Highly-Configurable Systems and Single SystemsInformation and Software Technology10.1016/j.infsof.2022.107035152(107035)Online publication date: Dec-2022
  • (2022)Evolving software system families in space and time with feature revisionsEmpirical Software Engineering10.1007/s10664-021-10108-z27:5Online publication date: 30-May-2022
  • (2021)The life cycle of features in highly-configurable software systems evolving in space and timeProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487195(2-15)Online publication date: 17-Oct-2021
  • (2021)Seamless Variability Management With the Virtual PlatformProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00147(1658-1670)Online publication date: 22-May-2021
  • (2020)Mining Feature Revisions in Highly-Configurable Software SystemsProceedings of the 24th ACM International Systems and Software Product Line Conference - Volume B10.1145/3382026.3425776(74-78)Online publication date: 19-Oct-2020
  • (2020)On the fulfillment of coordination requirements in open-source software projects: An exploratory studyEmpirical Software Engineering10.1007/s10664-020-09833-8Online publication date: 8-Oct-2020
  • (2020)The state of adoption and the challenges of systematic variability management in industryEmpirical Software Engineering10.1007/s10664-019-09787-6Online publication date: 4-Apr-2020
  • (2019)Tackling knowledge needs during software evolutionProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3342505(1244-1246)Online publication date: 12-Aug-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media