Linux Kernel Architecture

(Jacob Rumans) #1
Mauerer runbapp06.tex V1 - 09/04/2008 6:14pm Page 1271

Appendix F: The Kernel Development Process


1.10^7

1.10^6

1.10^5

1.10^4

1.10^3
21 22 23 24

# lines affected (logarithmic scale)

Kernel Release 2.6.x

Changes

Figure F-2: Detailed inspection of the rate of change during the development of kernel
version 2.6.22 to 2.6.24. Note that a logarithmic scale is employed on theyaxis.

Figure F-3 takes a slightly different look at the stabilization process by considering the changes made to
individual kernel releases and release candidates cumulatively. The merge window is nicely visible by a
rapid change in slope, followed by flat plateaus that mark the stabilization period.^2


A word of warning: Measuring the productivity of software projects is always hard in terms of pure num-
bers, especially when these numbers are just based on added and removed lines of code. For example, it
does not make much sense to first introduce vast amounts of code just to remove them later, although this
would rate high in the approach chosen here. Nevertheless, the comparatively simple method presented
here allows you to gain a good intuitive understanding of how the development process is organized. It
should also be noted that such results can be obtained very easily because the full kernel development
history is available in git repositories — it should not be difficult for you to analyze your own area of
interest in the kernel sources with similar methods.


New features do not drop out of the blue sky — they have usually seen a long development history before
they are considered for acceptance into the mainline kernel. How development happens in this phase
strongly depends on the particular subsystem andthe involved maintainers. Code that has been dis-
cussed for years before it is accepted into mainline is not uncommon. The Reiser filesystem, for instance,
took a very long time before all issues that many developers had with it were resolved. Sometimes it
takes a considerable amount of pushing to get work accepted into the vanilla kernel, but sometimes


(^2) This way of presenting the data was inspired by Jonathan Corbet’sKernel Reporttalk which you can enjoy during many Linux
related conferences and similar occasions. Some conference web sites, such aslinux.conf.au, offer a video of the talk.

Free download pdf