Skip to main content
Log in

Evolution and stability of Linux kernels based on complex networks

  • Research Paper
  • Published:
Science China Information Sciences Aims and scope Submit manuscript

Abstract

This paper presents a novel method to study Linux kernel evolution using complex networks. Having investigated the node degree distribution and average path length of the call graphs corresponding to the kernel modules of 223 different versions (V1.1.0 to V2.4.35), we found that the call graphs are scale-free and smallworld networks. Based on the relationship between average path length and nodes, we propose a method to find unusual points during Linux kernel evolution using the slope of the average path length. Using the unusual points we identify major structural changes in kernel modules. A stability coefficient is also proposed to describe quantitatively the stability of kernel modules during evolution. Finally, we verify our result through Vasa’s metrics method.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Lehman M M. Laws of software evolution revisited. In: Montanger L, ed. LNCS. London: Springer-Verlag, 1996. 108–124

    Google Scholar 

  2. Godfrey M, Tu Q. Evolution in open source software: a case study. In: Proceedings of the International Conference on Software Maintenance. San Jose: IEEE Computer Society, 2000. 131–142

    Google Scholar 

  3. Godfrey M, Tu Q. Growth, evolution, and structural change in open source software. In: Proceedings of the 4th International Workshop on Principles of Software Evolution. Vienna: ACM, 2001. 103–106

    Google Scholar 

  4. Sadou N, Tamzalit D, Oussalah M. A unified approach for software architecture evolution at different abstraction levels. In: Proceedings of the 8th International Workshop on Principles of Software Evolution. Lisbon: IEEE Computer Society, 2005. 65–70

    Google Scholar 

  5. Lung C H, Bot S, Kalaichelvan K, et al. An approach to software architecture analysis for evolution and reusability. In: Johnson J H, ed. Proceedings of the 1997 Conference of the Centre for Advanced Studies on Collaborative Research. Toronto: IBM, 1997. 15–25

    Google Scholar 

  6. Garlan D, Schmerl B. Architecture-driven modelling and analysis. In: Tony C, ed. Proceedings of the 11th Australian Workshop on Safety Critical Systems and Software. Darlinghurst: Australian Computer Society, 2006. 3–17

    Google Scholar 

  7. Issarny V, Saridakis T, Zarras A. Multi-view description of software architectures. In: Proceedings of the 3rd International Workshop on Software Architecture. New York: ACM, 1998. 81–84

    Chapter  Google Scholar 

  8. Chartrand G. Introductory Graph Theory. New York: Courier Dover Publications, 1985. 32–33

    Google Scholar 

  9. Erdös P, Rényi A. On random graphs. Publ Math Debrecen, 1959, 6: 290–297

    MathSciNet  MATH  Google Scholar 

  10. Newman M E J. The structure and function of complex networks. SIAM Rev, 2003, 45: 167–256

    Article  MathSciNet  MATH  Google Scholar 

  11. Newman M E J. Power laws, Pareto distribution and Zipf’s law. Contemp Phys, 2005, 46: 323–351

    Article  Google Scholar 

  12. Watts D J, Strogatz S H. Collective dynamics of ’small-world’ networks. Nature, 1998, 393: 440–442

    Article  Google Scholar 

  13. Newman M E, Watts D J. Renormalization group analysis of the small-world network model. Phys Lett A, 1999, 263: 341–346

    Article  MathSciNet  MATH  Google Scholar 

  14. Vasa R, Schneider J G, Woodward C, et al. Detecting structural changes in object oriented software systems. In: Verner J, Travassos G H, eds. International Symposium on Empirical Software Engineering. Noosa Heads: IEEE Computer Society Press, 2005. 479–486

    Google Scholar 

  15. Vasa R, Schneider J G, Nierstrasz O. The inevitable stability of software change. In: Proceedings of the International Conference on Software Maintenance. Paris: IEEE Computer Society, 2007. 4–13

    Google Scholar 

  16. Lehman M M, Ramil J F. Evolution in software and related areas. In: Proceedings of International Workshop on Principles of Software Evolution. New York: ACM, 2001. 1–16

    Google Scholar 

  17. Lehman M M, Perry D E, Ramil J F. Implications of evolution metrics on software maintenance. In: Proceedings of International Conference on Software Maintenance. Bethesda: IEEE Computer Society, 1998. 208–217

    Google Scholar 

  18. Fischer M, Pinzger M, Gall H. Populating a release history database from version control and bug tracking systems. In: Proceedings of the International Conference on Software Maintenance. Amsterdam: IEEE Computer Society, 2003. 23–32

    Google Scholar 

  19. Fluri B, Gall H, Pinzger M. Fine-grained analysis of change couplings. In: Proceedings of the 5th IEEE International Workshop on Source Code Analysis and Manipulation. Budapest: IEEE Computer Society, 2005. 66–74

    Chapter  Google Scholar 

  20. Ratzinger, Fischer M, Gall H. Improving evolvability through refactoring. In: Proceedings of the 2005 International Workshop on Mining Software Repositories. New York: ACM, 2005. 1–5

    Chapter  Google Scholar 

  21. Valverde S, Cancho R F, Sole R V. Scale free networks from optimal design. Europhys Lett, 2002, 60: 512–517

    Article  Google Scholar 

  22. Myers C R. Software systems as complex networks: structure, function, and evolvability of software collaboration graphs. Phys Rev E, 2003, 68: 046116.1–046116.15

    Article  Google Scholar 

  23. Zheng X, Zeng D, Li H, et al. Analyzing open-source software systems as complex networks. Physica A, 2008, 387: 6190–6200

    Article  Google Scholar 

  24. Krapivsky P L, Redner S. Network growth by copying. Phys Rev E, 2005, 71: 036118

    Article  MathSciNet  Google Scholar 

  25. Valverde S, Solé R V. Network motifs in computational graphs: a case study in software architecture. Phys Rev E, 2005, 72: 026107

    Article  Google Scholar 

  26. Jenkins S, Kirk S R. Software architecture graphs as complex networks: a novel partitioning scheme to measure stability and evolution. Inform Sciences, 2007, 177: 2587–2601

    Article  Google Scholar 

  27. Ma Y T, He K Q, Liu J. Network motifs in object-oriented software systems. Dynam Cont Dis Ser B, 2007, 14: 166–172

    Google Scholar 

  28. Shi D, Liu L. Evolving networks-models, measurements and methodologies. In: Complex Network. Shanghai: Shanghai Science and Technology Publication, 2006. 1–26

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lei Wang.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wang, L., Wang, Z., Yang, C. et al. Evolution and stability of Linux kernels based on complex networks. Sci. China Inf. Sci. 55, 1972–1982 (2012). https://doi.org/10.1007/s11432-011-4337-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11432-011-4337-1

Keywords

Navigation