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.
Similar content being viewed by others
References
Lehman M M. Laws of software evolution revisited. In: Montanger L, ed. LNCS. London: Springer-Verlag, 1996. 108–124
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
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
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
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
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
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
Chartrand G. Introductory Graph Theory. New York: Courier Dover Publications, 1985. 32–33
Erdös P, Rényi A. On random graphs. Publ Math Debrecen, 1959, 6: 290–297
Newman M E J. The structure and function of complex networks. SIAM Rev, 2003, 45: 167–256
Newman M E J. Power laws, Pareto distribution and Zipf’s law. Contemp Phys, 2005, 46: 323–351
Watts D J, Strogatz S H. Collective dynamics of ’small-world’ networks. Nature, 1998, 393: 440–442
Newman M E, Watts D J. Renormalization group analysis of the small-world network model. Phys Lett A, 1999, 263: 341–346
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
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
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
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
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
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
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
Valverde S, Cancho R F, Sole R V. Scale free networks from optimal design. Europhys Lett, 2002, 60: 512–517
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
Zheng X, Zeng D, Li H, et al. Analyzing open-source software systems as complex networks. Physica A, 2008, 387: 6190–6200
Krapivsky P L, Redner S. Network growth by copying. Phys Rev E, 2005, 71: 036118
Valverde S, Solé R V. Network motifs in computational graphs: a case study in software architecture. Phys Rev E, 2005, 72: 026107
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
Ma Y T, He K Q, Liu J. Network motifs in object-oriented software systems. Dynam Cont Dis Ser B, 2007, 14: 166–172
Shi D, Liu L. Evolving networks-models, measurements and methodologies. In: Complex Network. Shanghai: Shanghai Science and Technology Publication, 2006. 1–26
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11432-011-4337-1