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 2015Publication 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/.Google ScholarGoogle Scholar
  2. S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. IEEE Transactions on Software Engineering, 34(2):162–180, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, 2013. Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Conway, D. Eddelbuettel, T. Nishiyama, S. Kumar, and T. Neil. Package ’RPostgreSQL’, 2013. R package version 0.4.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  10. J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O’Reilly, 3rd edition, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. G. Feitelson. Perpetual Development: A Model of the Linux Kernel Life Cycle. Journal of Systems and Software, 85(4):859–875, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  19. B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer, 1st edition, 1997. Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. G. Grothendieck. Package ’sqldf’, 2014. R package version 0.4-7.1.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  23. M. Hubert and E. Vandervieren. An Adjusted Boxplot for Skewed Distributions. Computational Statistics & Data Analysis, 52(12):5186–– 5201, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. T. Jones. Anatomy of the Linux Kernel. IBM Developer Works, 2009.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Kbuild. The Kernel Build Infrastructure. www.kernel.org/doc/ Documentation/kbuild. Last seen: February 14th, 2015.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. D. S. Moore, G. P. McCabe, and B. Craig. Introduction to the Practice of Statistics. W. H. Freeman, 6th edition, 2009.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. M. P. Robillard and G. C. Murphy. Representing Concerns in Source Code. Transactions on Software Engineering Methodologies, 16(1), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  42. H. Spencer and G. Collyer. #ifdef Considered Harmful, or Portability Experience with C News. In USENIX, pages 185–197, 1992.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  46. S. Venkateswaran. Essential Linux Device Drivers. Prentice Hall Press, 1st edition, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

          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
          • 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

            Copyright © 2015 ACM

            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]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 16 March 2015

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate41of139submissions,29%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader