Perpetual development: A model of the Linux kernel life cycle

Dror G. Feitelson*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

20 Scopus citations

Abstract

Software evolution is widely recognized as an important and common phenomenon, whereby the system follows an ever-extending development trajectory with intermittent releases. Nevertheless there have been only few lifecycle models that attempt to portray such evolution. We use the evolution of the Linux kernel as the basis for the formulation of such a model, integrating the progress in time with growth of the codebase, and differentiating between development of new functionality and maintenance of production versions. A unique element of the model is the sequence of activities involved in releasing new production versions, and how this has changed with the growth of Linux. In particular, the release follow-up phase before the forking of a new development version, which was prominent in early releases of production versions, has been eliminated in favor of a concurrent merge window in the release of 2.6.x versions. We also show that a piecewise linear model with increasing slopes provides the best description of the growth of Linux. The perpetual development model is used as a framework in which commonly recognized benefits of incremental and evolutionary development may be demonstrated, and to comment on issues such as architecture, conservation of familiarity, and failed projects. We suggest that this model and variants thereof may apply to many other projects in addition to Linux.

Original languageAmerican English
Pages (from-to)859-875
Number of pages17
JournalJournal of Systems and Software
Volume85
Issue number4
DOIs
StatePublished - Apr 2012

Bibliographical note

Funding Information:
This work was supported by a grant from The Wolfson Fund .

Keywords

  • Linux kernel
  • Maintenance
  • Software evolution
  • Software release

Fingerprint

Dive into the research topics of 'Perpetual development: A model of the Linux kernel life cycle'. Together they form a unique fingerprint.

Cite this