2012
DOI: 10.1016/j.jss.2011.10.050
|View full text |Cite
|
Sign up to set email alerts
|

Perpetual development: A model of the Linux kernel life cycle

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 v… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

2
9
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
6
2

Relationship

0
8

Authors

Journals

citations
Cited by 18 publications
(11 citation statements)
references
References 64 publications
2
9
0
Order By: Relevance
“…Such high frequency agrees with existing work [9,12,15,8], stating that the Linux kernel evolution is mainly driven by the addition of new drivers; (b) core functionality (2%)-features added to the core kernel, such as supporting self-test for 64-bit atomic instructions; (c) complementary functionality (5%)-features that complement an existing feature, either in or outside the core, with extra functionality (e.g., debugging support); and (d) shared functionality (3%)-features that provide a common base to a set of features. For example, the CAN (Controller Area Network) network bus driver provides a generic infrastructure that all specific CAN drivers rely on.…”
Section: Pattern Catalogsupporting
confidence: 92%
“…Such high frequency agrees with existing work [9,12,15,8], stating that the Linux kernel evolution is mainly driven by the addition of new drivers; (b) core functionality (2%)-features added to the core kernel, such as supporting self-test for 64-bit atomic instructions; (c) complementary functionality (5%)-features that complement an existing feature, either in or outside the core, with extra functionality (e.g., debugging support); and (d) shared functionality (3%)-features that provide a common base to a set of features. For example, the CAN (Controller Area Network) network bus driver provides a generic infrastructure that all specific CAN drivers rely on.…”
Section: Pattern Catalogsupporting
confidence: 92%
“…This high frequency is in line with previous work (Feitelson 2012;Godfrey and Tu 2000;Izurieta and Bieman 2006;Lotufo et al 2010) stating that Linux kernel evolution is mainly driven by the addition of new device driver-related features. -Architecture specific code (arch): 2.4 % of the instances of this pattern add modules that are specific to a given hardware architecture.…”
Section: Feature Addition Patterns (Non-inferred)supporting
confidence: 90%
“…Our longitudinal analysis of the source code concentrated on driver features, which are defined in the driver subsystem of the Linux kernel. Beside practicality, this decision rests on existing work stating that the Linux kernel evolution is mainly driven by the evolution of its device drivers [14,27,[31][32][33], and on our own analyses (which we explain shortly). Setting the scope to features in the driver subsystem required us to distinguish them from features of other subsystems.…”
Section: Scopingmentioning
confidence: 99%