Linux Kernel Architecture

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

Appendix F: The Kernel Development Process


without having to be back-ported by distribution vendors. This goal has clearly been reached: The
intervals between releases in the 2.6 series are roughly 70 to 110 days long, which means that a
new kernel comes out every couple of months. Many aspects of how development works have
been illuminated by a study published by the Linux Foundation [KHCM], and updates on that
studyappearlooselyonwww.lwn.net. One particularly interesting observation of this study is that
progress in the vanilla kernel proceeds inbursts, which is intentional, but it took some time until
everything worked out properly. Consider Figure F-1, which illustrates the temporal flow of changes to
the kernel.

0.10^0

2.10^5

4.10^5

6.10^5

8.10^5

1.10^6

1.10^6

12 13 14 15 16 17 18 19 20 21 22 23 24

# lines affected

Kernel Release 2.6.x

Changes

Figure F-1: Rate of change in the vanilla kernel. An open merge window leads to a rapid
burst of changes, followed by a stabilization period with a considerably smaller change
rate.

After a new kernel has been released, Linus Torvalds opens amerge windowthat is kept open
during a short period, typically two weeks. Newcodeissupposedtogoinonlyduringthis
period. Although there can be exceptions to the rule, this policy is usually enforced quite
strictly. The rate of changes is rather drastic during this time. This period of fervent activity
ends when the merge window is closed and release candidate kernels are prepared. Release
candidates provide oppurtunities for testing how all changes interact as well as identify-
ing and fixing bugs. The rate of changes declines rapidly, because fixes are often very short
patches that are as important as the initial feature submission. Once things have stabilized, a
new kernel version is released. The behavior is detailed in Figure F-2, which shows a close-up
inspection of the development progress betweenkernel 2.6.21 and 2.6.24. Notice that a loga-
rithmic scale is employed on theyaxis. While the first release candidate contains one million
changes(!), the number then drops to around 10,000for the next releases, and even further until the
final release.
Free download pdf