Linux kernel development by the numbers
The report contains lots of amazing numbers, which together offer an insight into the tremendous amount of work that goes on behind the scenes to develop the kernel, the core of the Linux OS.
We jumped head first into the report and extracted as much information as we could. Read on to get a real up-close look at the Linux kernel.
How fast is it going?
First, let’s look at how fast the Linux kernel is developed, with numbers for how many patches each release has included, and much more. If not otherwise noted, the numbers below cover kernel versions 2.6.11 to 3.2.
The Linux kernel is a rather expansive software project, with over 15 million lines of code as of version 3.2, more than double that of version 2.6.11:
If we look at how many lines of code have been added for each version, and divide that with how many days each version took to finish, we get a wide spread. In version 2.6.23, the developers added on average 715 lines of code per day, and in version 2.6.29 they added 9,166 lines of code per day.
On average, each version of the Linux kernel saw 3,509 lines of code being added per day of development.
Note that version 2.6.36 is excluded from this chart, and the reason you can find below. Now, let’s look at some more numbers:
- 8,000-12,000 – The number of patches going into each recent kernel release.
- 1,000 – Each release contains the work of at least this many developers.
- 200 – These developers represent nearly 200 corporations.
- 1991 – The year Linus Torvalds jump-started the development of Linux as a whole.
- 8-12 – The desired release period (in weeks) for a major kernel release.
- 108 – The number of days of development for kernel versions 2.6.12 and 2.6.24, the longest of any release.
- 61 – The number of days of development for kernel version 2.6.14, the shortest of any release.
- 3,616 – The number of patches for kernel version 2.6.11, the fewest of any release.
- 12,243 – The number of patches for kernel version 2.6.25, the largest of any release.
- 1.95 – The number of changes per hour for kernel version 2.6.12, the lowest of any release.
- 6.88 – The number of patches for kernel version 3.2, the highest of any release.
- 4.3 – The number of patches to the kernel tree per hour between version 2.6.11 and 3.2.
- 62 – The number of total updates for 2.6.16, the highest of any release.
- 4 – The number of total updates for 2.6.36 and 2.6.39, the lowest of any release.
- 47 – The number of fixes in 2.6.12, the lowest of any release.
- 3,315 – The number of fixes in 2.6.32, the highest of any release.
- 17,090 – The number of files in the 2.6.11 kernel version
- 6,624,076 – The number of lines of code in the 2.6.11 kernel version
- 37,626 – The number of files in the 3.2 kernel version
- 15,004,006 – The number of lines of code in the 3.2 kernel version
- 2.6.36 – The only kernel version that had less files and lines of code than its predecessor, due to a clean up of configuration files. Therefore, this version is not included in the chart above.
- 4.3 – By our calculations, version 4.3 of the Linux kernel would be the first version using more than 20 million lines of code. That’s assuming the kernel keeps the same average growth between versions going forward, as it has from 2.6.11 to 3.2.
Who is doing it?
You would perhaps think that most of the work is carried out by lonely hackers slaving away at a piece of code in the solitude of a dark room. And there may be some truth to that but the fact is that the Linux kernel is a big community of diverse individuals.
In fact, when we divide the number of lines of code in each version of the Linux kernel with how many developers were involved, we find out that each developer, on average, accounts for 10,935 lines of code in each release.
And then some more numbers:
- 389 – The number of developers involved in kernel version 2.6.11, also the lowest number of all versions.
- 68 – The number of known companies involved in kernel version 2.6.11, also the lowest number of all versions.
- 1,316 – The number of developers involved in kernel version 3.2.
- 226 – The number of known companies involved in kernel version 3.2.
- 1,276 – The number of developers involved in kernel version 2.6.37, the highest of any version.
- 249 – The number of known companies involved in kernel version 2.6.30, the highest of any version.
- 1/3 – The share of developers that contribute exactly one patch.
- 9% – The share of the total changes contributed by the top 10 individual developers over the last 5.5 years.
- 20% – The share of the total changes contributed by the top 20 individual developers over the last 5.5 years.
- 3,258 – The number of changes contributed by David S. Miller, representing 1.2% of all changes, the most of any individual (judged by the entire Git repository history.)
- 887 – The number of changes contributed by Mark Brown representing 1.3% of all changes, the most of any individual (from version 2.6.35 to 3.2).
- 1,113 – The total number of changes committed by Linus Torvalds, which doesn’t even give him a place in the top 30.
- 10,935 - According to our calculations, this is the average number of lines of code per Linux kernel developer, per version.
Who is sponsoring it?
In the end, someone has to pay for all the work that is required. As it turns out, most of the work that is done on the Linux kernel is carried out by people who get paid to do the work.
Among the top 10 contributors to the Linux kernel development, ranked by the number of changes to the kernel each has made, we find many of the world’s top tech companies:
Then we dig a bit deeper into the numbers:
- 60% – The share of the total contributions to the Linux kernel from the top 10 contributors.
- 75% – The share of all kernel development that is done by developers who are being paid for their work.
- 31,261 – The number of contributions made by Red Hat, representing 11.79% of the total, more than any other company.
- 700 – The “long tail” of companies that have all made “significant changes” to the Linux kernel.
- 688 – The number of changes made by Microsoft, representing 1% of the total.
- 7,848 – The number of lines of code signed off by Greg Kroah-Hartman since 2.6.35, representing 5.8% of the total, more than any other developer.
- 3,266 – The number of lines of code signed off by Linus Torvalds since 2.6.35, representing 2.4% of the total.
- 26,225 – The number of lines of code signed off by Red Hat since 2.6.35, representing 37.7% of the total.
The Linux kernel is a big community
The Linux Foundation says in its report that “the Linux kernel is one of the largest and most successful open source projects that has ever come about.” We can’t argue with that. Instead we want to say that we appreciate all the work that so many people are putting in, making Linux what it is today.
Arguably, the Internet and the world would not be the same today, unless these people worked so hard at the Linux kernel. We owe them and the companies supporting them a big thank you.
Finally, since we’re on the topic of open source software, you may want to reach our coverage of how the Apache HTTP Server team works with security.
After reading all these numbers describing the work that is going on with the Linux kernel, what surprised you the most?