On the evolution of Linux kernels: a complex network perspective

This paper presents a novel method to study the evolution of Linux kernel components using complex networks to understand how Linux kernel components evolve over time. After analyzing the node degree distribution, clustering coefficient, and average path length of the call graphs corresponding to the kernel components of 130 development versions and 94 stable versions (V1.0 to V2.4.35), we found that the call graphs of the file system, driver, kernel, memory management, and net components are scale‐free, small‐world complex networks. In addition, all of the five components exhibit very strong preferential attachment tendency. With such in‐depth understanding of the features of the Linux kernel components, we propose a generic method that could be used to find major structural changes that occur during the evolution of software systems. Copyright © 2012 John Wiley & Sons, Ltd.

[1]  R. Solé,et al.  Self-organization versus hierarchy in open-source social networks. , 2007, Physical review. E, Statistical, nonlinear, and soft matter physics.

[2]  E. Kay,et al.  Introductory Graph Theory , 1978 .

[3]  Dewayne E. Perry,et al.  Implications of evolution metrics on software maintenance , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[4]  Christopher R. Myers,et al.  Software systems as complex networks: structure, function, and evolvability of software collaboration graphs , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[5]  Sergi Valverde,et al.  Hierarchical Small Worlds in Software Architecture , 2003 .

[6]  M. Newman Power laws, Pareto distributions and Zipf's law , 2005 .

[7]  James Noble,et al.  Scale-free Geometry in Object-Oriented Programs , 2004 .

[8]  Nathan LaBelle,et al.  Inter-Package Dependency Networks in Open-Source Software , 2004, ArXiv.

[9]  Samantha Jenkins,et al.  Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution , 2007, Inf. Sci..

[10]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[11]  Valérie Issarny,et al.  Multi-view description of software architectures , 1998, ISAW '98.

[12]  Michele Marchesi,et al.  A modified Yule process to model the evolution of some object-oriented system properties , 2011, Inf. Sci..

[13]  Rick Kazman,et al.  An approach to software architecture analysis for evolution and reusability , 1997, CASCON.

[14]  M. Newman,et al.  Renormalization Group Analysis of the Small-World Network Model , 1999, cond-mat/9903357.

[15]  Sergiu M. Dascalu,et al.  Unit-level test adequacy criteria for visual dataflow languages and a testing methodology , 2008, TSEM.

[16]  Sidney I. Resnick,et al.  How to make a Hill Plot , 2000 .

[17]  Duncan J. Watts,et al.  Collective dynamics of ‘small-world’ networks , 1998, Nature.

[18]  Albert,et al.  Emergence of scaling in random networks , 1999, Science.

[19]  Michele Marchesi,et al.  Power-Laws in a Large Object-Oriented Software System , 2007, IEEE Transactions on Software Engineering.

[20]  Harald C. Gall,et al.  Fine-grained analysis of change couplings , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[21]  Mark E. J. Newman,et al.  The Structure and Function of Complex Networks , 2003, SIAM Rev..

[22]  Mourad Oussalah,et al.  A unified approach for software architecture evolution at different abstraction levels , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[23]  Katsuro Inoue,et al.  An Exploration of Power-Law in Use-Relation of Java Software Systems , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

[24]  M. E. J. Newman,et al.  Power laws, Pareto distributions and Zipf's law , 2005 .

[25]  Diomidis Spinellis,et al.  Power laws in software , 2008, TSEM.

[26]  Alan M. Frieze,et al.  Random graphs , 2006, SODA '06.

[27]  Qiang Tu,et al.  Growth, evolution, and structural change in open source software , 2001, IWPSE '01.

[28]  James Noble,et al.  Scale-free geometry in OO programs , 2005, CACM.

[29]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[30]  H E Stanley,et al.  Classes of small-world networks. , 2000, Proceedings of the National Academy of Sciences of the United States of America.

[31]  David Garlan,et al.  Architecture-driven modelling and analysis , 2007 .

[32]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[33]  Takako Nakatani,et al.  Analysis of software evolution processes using statistical distribution Models , 2002, IWPSE '02.

[34]  Meir M. Lehman,et al.  Evolution in software and related areas , 2001, IWPSE '01.

[35]  Harald C. Gall,et al.  Improving evolvability through refactoring , 2005, MSR.