|
|
Subscribe / Log in / New account

Who wrote 3.0 - from two points of view

By Jonathan Corbet
July 13, 2011
Linus Torvalds had hoped to release the 3.0 kernel after -rc6, but reality, as is its wont, intervened; thus, 3.0-rc7 was released on July 11. That probably is the last development release for 3.0, though. Tradition dictates that we take a look at the contributor statistics for this development cycle, which we will now do.

This kernel release inaugurates the beginning of the 3.x series of kernels. As has been mentioned many times here, there is nothing particularly special about the 3.0 release; it has been, in many ways, a relatively boring development cycle. But it still provides a good opportunity to look back over a longer period of time. But, before doing that, we'll start with this cycle, which has, as of 3.0-rc7, seen 9,007 changesets contributed by 1,110 developers. The kernel grew 113,000 lines in this development cycle - a relatively modest figure by contemporary standards.

The most active developers during this cycle were:

Most active 3.0 developers
By changesets
K. Y. Srinivasan3433.8%
David S. Miller1762.0%
Dan Williams1491.7%
Jonathan Cameron1191.3%
Takashi Iwai1081.2%
Mark Brown911.0%
Johannes Berg840.9%
Peter Zijlstra800.9%
Sage Weil790.9%
Tejun Heo780.9%
Joe Perches770.9%
Michał Mirosław770.9%
Konrad Rzeszutek Wilk760.8%
Jamie Iles750.8%
Alex Deucher710.8%
Artem Bityutskiy690.8%
Steven Rostedt660.7%
Mike Frysinger630.7%
Sujith Manoharan620.7%
Avi Kivity580.6%
By changed lines
Dan Williams824669.1%
Larry Finger746438.3%
Dmitry Kravkov389604.3%
Vasanthakumar Thiagarajan336183.7%
Mauro Carvalho Chehab268153.0%
Bing Zhao255762.8%
Ralph Metzler199332.2%
Takahiro Hirofuchi193182.1%
Chaoming Li147431.6%
Jonathan Cameron145741.6%
Chris Metcalf121441.3%
Luis R. Rodriguez114431.3%
Dave Jiang110061.2%
Wolfram Sang98861.1%
K. Y. Srinivasan97091.1%
Mark Brown91271.0%
Arend van Spriel76670.8%
Kenji Toyama75280.8%
Alan Cox74490.8%
Takashi Iwai74100.8%

K. Y. Srinivasan topped the list of changeset contributors with a massive set of cleanups to the Microsoft HV driver in the staging tree; it's impressive to see how much cleanup less than 15,000 lines of code can require. David Miller made a lot of changes in the networking subsystem; some were warning fixes and such, while others were more substantial. Dan Williams contributed Intel's "isci" storage driver, merged in 3.0-rc6. Jonathan Cameron contributed a lot of work to rationalize the industrial I/O (iio) subsystem and prepare it for an eventual merge into the mainline. Takashi Iwai continues to do large amounts of work in the ALSA sound driver subsystem.

The isci driver put Dan Williams at the top of the "lines changed" column. Larry Finger's contribution is largely negative (in line counts - not in value): he removed the rt2860sta and rt2870sta drivers from the staging tree now that the mainline driver can replace them. Dmitry Kravkov appears due to a firmware update; the bnx2x driver is one of the few which still has firmware in the mainline kernel tree. Vasanthakumar Thiagarajan also removed a lot of code, mostly through the process of eliminating duplication between Atheros wireless drivers. Mauro Carvalho Chehab removed the obsolete Micronas drx397xD driver.

A total of 184 employers (that we were able to identify) participated in the 3.0 cycle; the most active among them were:

Most active 3.0 employers
By changesets
(None)108512.0%
Red Hat100011.1%
Intel8399.3%
(Unknown)5696.3%
Novell4414.9%
IBM3744.2%
Microsoft3614.0%
Atheros Communications2412.7%
Texas Instruments2342.6%
Broadcom2222.5%
Oracle1872.1%
AMD1621.8%
Nokia1581.8%
Fujitsu1541.7%
Google1291.4%
University of Cambridge1191.3%
Analog Devices1181.3%
(Consultant)1131.3%
Samsung1031.1%
Wolfson Microelectronics1031.1%
By lines changed
Intel16323218.1%
(None)15284016.9%
Broadcom619486.9%
Red Hat590796.5%
Atheros Communications532685.9%
Marvell311183.4%
(Unknown)292613.2%
IBM205872.3%
Metzler Brothers Systementwicklung GbR199332.2%
Novell195782.2%
University of Cambridge169691.9%
Pengutronix162071.8%
Realsil Microelectronics148761.6%
Analog Devices129981.4%
Tilera122571.4%
Freescale116371.3%
Microsoft115641.3%
Texas Instruments108021.2%
Wolfson Microelectronics100511.1%
Samsung97841.1%

There are few surprises here. Microsoft at 4% of the total changes is unusual; one assumes that presence will not be permanent: even the HV drivers can only need so much cleaning up. The percentage of changes from hobbyists continues to drop; whether that's a bad thing (the kernel is becoming increasingly unapproachable to volunteer developers) or a good thing (it's impossible for anybody who can hack the kernel to remain unemployed) is still not clear.

A longer-term look

The release of 3.0 provides as good an opportunity as any to look at the entire 2.6 series. Thanks to the BitKeeper history tree put together by Thomas Gleixner, it is possible to get detailed information back almost to the beginning of the 2.5 development cycle, which can be thought of as the set of -rc kernels leading up to 2.6.0. This information is far from complete, unfortunately. The 2.5.0 through 2.5.3 releases predate the BitKeeper transition, and thus appear as big patches from Linus. Even thereafter, a lot of early changes appear to have been contributed by the maintainer they passed through instead of the actual author; it took a while to establish the infrastructure to properly credit all work. Still, there is enough data there to work with.

The history from the beginning of the 2.5 development series covers about 9.5 years of development. During this time, some 291,664 changesets were contributed by 8,078 developers; those changes added 10.5 million lines of code. Here are the most active developers over that extended period:

Most active developers since 2.5.0
By changesets
Andrew Morton76382.6%
David S. Miller52031.8%
Al Viro38281.3%
Greg Kroah-Hartman33091.1%
Russell King32261.1%
Alan Cox26090.9%
Ingo Molnar25990.9%
Stephen Hemminger25350.9%
Bartlomiej Zolnierkiewicz24850.9%
Linus Torvalds24790.8%
Christoph Hellwig24290.8%
Takashi Iwai24140.8%
Adrian Bunk23060.8%
Tejun Heo22050.8%
Thomas Gleixner22050.8%
Paul Mundt21130.7%
Dave Jones20670.7%
Randy Dunlap18530.6%
Ralf Baechle17860.6%
Johannes Berg17700.6%
By changed lines
Greg Kroah-Hartman7381342.3%
Bartlomiej Zolnierkiewicz5530771.7%
Andrew Morton5377371.7%
Alan Cox4320231.4%
Jaroslav Kysela3876491.2%
Adrian Bunk3806911.2%
James Bottomley3674351.2%
Linus Torvalds3259541.0%
Ralf Baechle3198591.0%
Paul Mackerras2794540.9%
Sam Ravnborg2701180.8%
David S. Miller2545740.8%
Christoph Hellwig2387490.8%
Mauro Carvalho Chehab2327930.7%
Uwe Kleine-König2155600.7%
Russell King2093620.7%
Benjamin Herrenschmidt1957070.6%
Jeff Garzik1907240.6%
Paul Mundt1857810.6%
David Howells1838720.6%

It should be repeated that these numbers are highly approximate. For example, while Andrew Morton was indeed a prolific code contributor in the 2.5.x and early 2.6 days, he didn't write quite that many patches; a lot of patches from others that went through him lost their authorship information on the way. That information is generally present in the changelog - somebody could try to make a new repository with proper credits given some time - but, for now, we'll have to make do with fuzzy numbers. The per-employer numbers are necessarily even fuzzier - to the point that they are most likely not worth showing here. Suffice to say that, in general form, they resemble the numbers we have been showing for the last few years.

For those who are curious about just the post-2.6.0 kernels, the numbers don't change that much. Since 2.6.0, there have been 264,706 changesets contributed by 7,725 developers adding 8.7 million lines of code.

One other exercise with this data seemed interesting: a determination of who have been the most consistent contributors over those nine years and some. After running a script to track which developers contributed to each major release, twelve developers were found who had contributed to all 41 of them. Additionally, a handful of developers have gotten code into almost every release. The most consistent developers are:

Most consistent developers 2.6.0-3.0
DeveloperReleasesMissed releases
Linus Torvalds41
David S. Miller41
Greg Kroah-Hartman41
Andrew Morton41
Christoph Hellwig41
Alan Stern41
James Bottomley41
Randy Dunlap41
Russell King41
Al Viro41
Stephen Hemminger41
Andi Kleen41
Jens Axboe40v2.6.1
Jean Delvare40v2.6.4
Dave Jones40v2.6.35
Benjamin Herrenschmidt40v2.6.1
Jeff Garzik40v2.6.36
Ingo Molnar39v2.6.2 v2.6.5
Herbert Xu39v2.6.3 v2.6.5
Patrick McHardy39v2.6.2 v2.6.6
Dmitry Torokhov38v2.6.3 v2.6.4 v2.6.6
Rusty Russell38v2.6.1 v2.6.15 v2.6.39
Matthew Wilcox38v2.6.14 v2.6.36 v3.0
Dave Kleikamp38v2.6.26 v2.6.33 v2.6.37
Len Brown38v2.6.1 v2.6.17 v2.6.39
Oliver Neukum38v2.6.4 v2.6.14 v2.6.37
Wim Van Sebroeck38v2.6.4 v2.6.6 v3.0
Andrew Vasquez38v2.6.0 v2.6.1 v2.6.5
James Morris38v2.6.16 v2.6.37 v2.6.39
Neil Brown37v2.6.1 v2.6.2 v2.6.3 v2.6.6
Trond Myklebust37v2.6.1 v2.6.2 v2.6.8 v2.6.10
Paul Mackerras37v2.6.1 v2.6.3 v2.6.38 v2.6.39
Bjorn Helgaas37v2.6.3 v2.6.20 v2.6.39 v3.0
Tony Lindgren37v2.6.0 v2.6.1 v2.6.5 v2.6.20
Nicolas Pitre37v2.6.3 v2.6.4 v2.6.5 v2.6.23
Stephen Rothwell37v2.6.1 v2.6.2 v2.6.3 v2.6.7
David Howells36v2.6.1 v2.6.2 v2.6.3 v2.6.4 v2.6.6
Eric Sandeen36v2.6.1 v2.6.8 v2.6.11 v2.6.17 v3.0
Ralf Baechle36v2.6.1 v2.6.3 v2.6.4 v2.6.7 v2.6.38
Arjan van de Ven36v2.6.1 v2.6.3 v2.6.13 v2.6.14 v3.0
David Brownell36v2.6.33 v2.6.34 v2.6.37 v2.6.38 v3.0

Your editor, who only got changes into 32 releases during this time, knows what an accomplishment it is to consistently contribute to every release over such a long period of time.

But, then, creating the kernel and the development process we have over the course of the last 20 years is an impressive accomplishment. There are few development projects which have lasted this long, gone this far, and have been more vital than ever. It has been fun to watch. It seems likely that things will remain just as fun over the next 20 years - one could argue that we have just begun.

Index entries for this article
KernelReleases/3.0


to post comments

Who wrote 3.0 - from two points of view

Posted Jul 14, 2011 5:35 UTC (Thu) by jamesmrh2 (guest, #31680) [Link] (2 responses)

Why was 2.6.1 was so commonly missed?

Who wrote 3.0 - from two points of view

Posted Jul 14, 2011 6:25 UTC (Thu) by dlang (guest, #313) [Link]

a combination of tracking problems and the fact that at the time many people were still using 2.4.x with little or no intention of _ever_ migrating to this scary new 2.6 thing.

Who wrote 3.0 - from two points of view

Posted Jul 14, 2011 8:35 UTC (Thu) by neilbrown (subscriber, #359) [Link]

Partly 2.6.1 had a lot fewer commits to subsequent releases. Commit counts for the first 10 are:

2.6.1 680
2.6.2 1252
2.6.3 1431
2.6.4 1407
2.6.5 1571
2.6.6 2020
2.6.7 2796
2.6.8 2650
2.6.9 4148
2.6.10 4510

and partly because Andrew Morton was getting a lot of patches attributed that didn't really belong to him. The counts for akpm patches in that first 10 are:

2.6.1 201
2.6.2 477
2.6.3 294
2.6.4 415
2.6.5 345
2.6.6 618
2.6.7 764
2.6.8 191
2.6.9 102
2.6.10 143

So about 25% of 2.6.1 and 2.6.2, and much less in the later releases.
(A quick look shows that the first few releases have several patches with
>>>> From: NeilBrown <neilb@cse.unsw.edu.au>
in the comment, but:
>>>> Author: Andrew Morton <akpm@osdl.org>
so I figure I should be in the exclusive "41-club" too!!)

MS only slightly behind IBM, really?

Posted Jul 14, 2011 8:07 UTC (Thu) by kragilkragil2 (guest, #76172) [Link] (2 responses)

But K. Y. Srinivasan is a Novell employee, right?
This could become a big headline so it is probably better to be safe.

MS only slightly behind IBM, really?

Posted Jul 14, 2011 10:38 UTC (Thu) by patrick_g (subscriber, #44470) [Link] (1 responses)

See the messages posted on LKML with mail addresses ending with "microsoft.com".

MS only slightly behind IBM, really?

Posted Jul 14, 2011 14:14 UTC (Thu) by dgm (subscriber, #49227) [Link]

Wow. Should I take my skates in my next visit to hell?

Who wrote 3.0 - from two points of view

Posted Jul 14, 2011 23:48 UTC (Thu) by mlankhorst (subscriber, #52260) [Link] (2 responses)

I respectfully disagree with the assertion that linux kernel development is hard for newcomers. However the thing that probably is lacking is the background knowledge every kernel hacker takes for granted. Following lwn for a few years helps a lot to learn about that. ;)

Who wrote 3.0 - from two points of view

Posted Jul 15, 2011 19:28 UTC (Fri) by Julie (guest, #66693) [Link] (1 responses)

the thing that probably is lacking is the background knowledge

I'm a bit confused by your comment, I had taken Jon's remark about it becoming difficult for new volunteer developers to participate as meaning the same as the above (newcomers don't _have_ that knowledge). Along with a couple of other potential difficulties:

1. Volunteers necessarily have less time than full-timers and therefore anything they swot up on at the time is likely to be dated when they come to try to put it into practice due to the current fast rate of development

2. The kernel's pretty much saturated with regards to experienced (sometimes full-time, paid) devs (at least in the areas of core work; I know Greg K-H is always looking for more contributors to staging).

What did you mean?

Following lwn for a few years helps a lot to learn about that. ;)

Well, I can't agree with you here - I think that following LWN for a few years has become pretty _essential_ for learning about that ;-)

Who wrote 3.0 - from two points of view

Posted Jul 15, 2011 20:07 UTC (Fri) by mlankhorst (subscriber, #52260) [Link]

With background knowledge I meant all the things you have to worry about in kernel space that might not happen in userspace. Atomics, interrupt contexts, rcu, the fact that not the whole world is a VAX^Wx86.

When writing a bugfix for EFI I had to deal with early memory allocators and the transition to the full page allocator. For fun I looked up what allocators were used in the kernel. I came up with brk, e820, memblock, bootmem, xen's special brew, and the kernel's full page allocator. This list is probably incomplete. ;)

Microsoft, co-author of the Linux kernel

Posted Jul 15, 2011 0:01 UTC (Fri) by david.a.wheeler (subscriber, #72896) [Link] (10 responses)

These stats are so amazing that I just posted "Microsoft, co-author of the Linux kernel", to comment on this. You might find that article amusing.

Microsoft, co-author of the Linux kernel

Posted Jul 15, 2011 2:47 UTC (Fri) by pr1268 (guest, #24648) [Link] (1 responses)

Somewhat amusing, but very enlightening. Thanks for the blog entry. I also found Steve Friedl's technical discussion you linked fun—it's reassuring that the Linux kernel source isn't polluted with DWORDs or HANDLEs or all other types in ALL_CAPS. Phew!

Microsoft, co-author of the Linux kernel

Posted Jul 15, 2011 6:21 UTC (Fri) by patrick_g (subscriber, #44470) [Link]

If I understand correctly Steve Friedl's technical discussion, it was only about the 200+ initial patchs to clean the MS driver before entering -staging.
What about the 300+ patchs during this 3.0 cycle? It can't be coding style work because that was done previously. Perhaps he need to write another article and change his previous conclusion.

Microsoft, co-author of the Linux kernel

Posted Jul 15, 2011 21:02 UTC (Fri) by leoc (guest, #39773) [Link] (7 responses)

Isn't it a bit weird that Microsoft is simultaneously contributing code to the Linux kernel **and** claiming that it violates their patents?

Microsoft, co-author of the Linux kernel

Posted Jul 15, 2011 23:20 UTC (Fri) by giraffedata (guest, #1954) [Link] (4 responses)

Isn't it a bit weird that Microsoft is simultaneously contributing code to the Linux kernel **and** claiming that it violates their patents?

Why? Because contributing code means you want to help Linux and claiming patent violation means you don't? I don't think it's that simple.

For one thing, Microsoft so far hasn't even prosecuted any of its patent claims. The main purpose for those claims seems to be to defend against insults against Microsoft of the form that a rag-tag bunch of people working for free put out something better than what the great Microsoft machine (or any other conventional software publisher) could make. The point of the claim is simply to say that Linux developers didn't do it alone.

Even if Microsoft were to sue over use of its patents in Linux, that wouldn't mean Microsoft doesn't like helping out Linux; only that it wants its fair share of the result.

Microsoft, co-author of the Linux kernel

Posted Jul 17, 2011 9:59 UTC (Sun) by dgm (subscriber, #49227) [Link]

Look up TomTom vs. Microsoft. I may be instructive for you.

Microsoft, co-author of the Linux kernel

Posted Jul 18, 2011 14:40 UTC (Mon) by dag- (guest, #30207) [Link] (1 responses)

Do you think Microsoft is getting a fair share ? I think they get more than they deserve, if they deserve anything at all. And no, we don't know how much they settle for patent-infringements with those large hardware vendors, but I don't think they deserve the tiniest bit.

Personally, if patents are there to protect corporate investments in research for the benefit of the general public, I do think the same general public should get full insight into patent settlements. I do think one (patent law) contradicts the other (closed patent-infringement settlements).

How can we make laws to protect the general public, if we don't know what backroom deals are made as a result of it? I also think if those deals were forced to be made public, support for patent law, especially in software development, will soon be impossible.

Microsoft, co-author of the Linux kernel

Posted Jul 18, 2011 15:25 UTC (Mon) by giraffedata (guest, #1954) [Link]

Do you think Microsoft is getting a fair share ?

That's a little off-topic, since we're talking about whether there is some inconsistency or irony in Microsoft contributing code to Linux while claiming that Linux infringes some Microsoft patents. The only thing that would be relevant is whether Microsoft thinks it's getting its fair share (because if it does, then I must be wrong about Microsoft's motivation in making claims of Linux patent infringement).

Microsoft, co-author of the Linux kernel

Posted Jul 18, 2011 18:38 UTC (Mon) by leoc (guest, #39773) [Link]

it wants its fair share of the result.

If they are playing "fair", then why do they refuse to provide a list of the patents Linux allegedly violates? Seems to me that the only share they would ever consider fair is 100%.

Microsoft, co-author of the Linux kernel

Posted Jul 19, 2011 9:12 UTC (Tue) by etienne (guest, #25256) [Link] (1 responses)

IANAL, but by contributing, don't they also give patent rights to "the Program"?
(For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. )

Microsoft, co-author of the Linux kernel

Posted Jul 19, 2011 10:15 UTC (Tue) by dgm (subscriber, #49227) [Link]

IANAL either, but Microsoft is not distributing "the program" (the Linux Kernel) here. I don't know if the set of patches can be considered "the program" by themselves.

Can I download the kernel from somewhere in microsoft.com? Is there a git tree somewhere? All those could count as "distributing".


Copyright © 2011, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds