Technology Lab —

Linux kernel: 13 million lines, over 5 patches per hour

The Linux Foundation has published a report with statistics about the growth …

The Linux Foundation has published its third annual report about Linux kernel authorship. The statistics included in the paper illustrate growth trends in the kernel development process and provide insight into how the labor is distributed among individual contributors and corporate sponsors. The kernel has seen modest growth in its base of contributors over the past year, though the rate of development has seen a marginal decline.

The latest version of the Linux kernel currently consists of approximately 13 million lines of code across over 33,000 files. The rate of development peaked with version 2.6.30 last year, which saw an average of 6.40 patches per hour. The rate declined to an average of 5.30 patches per hour in version 2.6.35.

The Linux Foundation attributes the decrease to a shift in focus from heavy development to stabilization on major components like GEM and ext4 that are reaching maturity. The merging of the staging tree into the mainline kernel (read our coverage of 2.6.28 for more details) inflated the volume of new code that was added last year, thus contributing to the appearance of a decline in activity this year. An informed analysis of the statistics indicates that the Linux kernel development community is still healthy, vibrant, and diverse.

The Linux Foundation report highlights the kernel's top individual and corporate contributors. Between version 2.6.30 and 2.6.35, approximately 19 percent of kernel development was done by independent contributors with no corporate affiliation. These volunteers collectively contribute more code than any single corporation that funds kernel development. The undisputed top corporate contributor is Red Hat, whose employees are responsible for 12 percent of the kernel changes that were made between .30 and .35. The next most prolific corporate contributors during that time period are Intel with 7.8 percent, Novell with 5 percent, and IBM with 4.8 percent.

Although Google uses Linux as a base for its Android and Chrome OS mobile platforms, the search giant's number of contributions over the past year are somewhat low relative to other mobile companies. Google's contributions account for 0.7 percent of the changes made to the kernel between .30 and .35. By comparison, Nokia's contributions represent 2.3 percent of the changes during the same period. Texas Instruments contributed 1.5 percent and Samsung contributed 0.6 percent.

These numbers are based largely on commit count and don't necessarily provide a crystal clear representation of a corporate contributor's significance in the Linux ecosystem. It's worth noting, for example, that despite a low commit count over the past year, Google employs some key kernel developers like Andrew Morton and Ted Ts'o.

Although a lot of the work on the kernel is being done by a small handful of companies, the Linux Foundation estimates that over 500 total companies are participating in Linux development in some capacity. Novell, which is undergoing a pending acquisition by Attachmate, is one of the most active participants. It's unclear if Novell's prolific kernel activity will continue in the coming year as it is integrated into Attachmate's business. We might see a decline in the numbers in next year's report if Attachmate doesn't share Novell's commitment to upstream kernel development.

Readers might be surprised to learn that Linux kernel creator Linus Torvalds is not among the top individual contributors. The Linux Foundation says that this is because Torvalds (who is employed by the foundation) spends an increasingly significant amount of time managing development and merging contributions from other developers rather than developing new features.

The kernel subsystem maintainers individually account for most of the effort to merge contributor patches, however, as they play a more direct role in reviewing the code that enters the kernel. Red Hat is the most prolific code reviewer, accounting for roughly 37 percent of all patch signoffs. Red Hat's David S. Miller (who is known for his work on the network stack and his role in porting Linux to SPARC) accounts for almost 11 percent of total patch signoffs by himself.

As the Linux Foundation concludes in its report, the Linux kernel is one of the biggest and most successful open source software projects ever. Linux's growing dominance in the consumer electronics market is attracting more corporate contributors. For additional details, you can refer to the complete report, which is available for download from the Linux Foundation's website.

85 Reader Comments

How does 13 million lines and 5 patchs/hour compare with other OS's? The numbers by themselves provide little context, especially since it is tracking commits - I sometimes commit a dozen times inside of an hour for what is really one larger change.

How does 13 million lines and 5 patchs/hour compare with other OS's? The numbers by themselves provide little context, especially since it is tracking commits - I sometimes commit a dozen times inside of an hour for what is really one larger change.

I'd be interested to see these statistics as well, if anyone has them.

How does 13 million lines and 5 patchs/hour compare with other OS's? The numbers by themselves provide little context, especially since it is tracking commits - I sometimes commit a dozen times inside of an hour for what is really one larger change.

I'd be interested to see these statistics as well, if anyone has them.

That said, go Linux!

Me too.

Anyway. It's been a while since I acutally used a Linux distro, it feels like it's time to get into it again.

It's funny how many commits there are, I've tried sending patches to lkml multiple times in the past and been ignored. I always got the feeling that unless you worked for redhat/ibm/novell your chances of being able to actually help out with Linux were non-existent.

> you still have to use a freakin package manager to deal with the obscene dependencies

Haha. Would you prefer to install software and resolve dependencies manually (e.g. like in Windows and Mac OS X)? Package managers are designed to make your life easier - just select your software and click "Install" - and you're done with the installation (dependencies are resolved automatically) in a moment.

> I still have to recompile the kernel to install a driver

Actually, you don't. You don't even necessarily have to reboot (restarting X-server is enough in most cases).

P.S. But anyway, if you don't like Linux, you probably shouldn't worry about number of lines of code in it's kernel - just go use your favourite OS (e.g. Windows, if you really like to waste your time doing things manually).

So there are 5.3 to 6.4 commits per hour over an entire year and David Miller is responsible for approving 11% of them? Assuming he works 12hours per day that's 1 code review per hour, every hour, for a year, no lunch breaks or holidays or weekend breaks.

> you still have to use a freakin package manager to deal with the obscene dependencies

Haha. Would you prefer to install software and resolve dependencies manually (e.g. like in Windows and Mac OS X)? Package managers are designed to make your life easier - just select your software and click "Install" - and you're done with the installation (dependencies are resolved automatically) in a moment.

> I still have to recompile the kernel to install a driver

Actually, you don't. You don't even necessarily have to reboot (restarting X-server is enough in most cases).

P.S. But anyway, if you don't like Linux, you probably shouldn't worry about number of lines of code in it's kernel - just go use your favourite OS (e.g. Windows, if you really like to waste your time doing things manually).

I don't like prepackaged stuff. I can never seem to find a distro that works correctly *and* has the software I want and I started using Linux since 1996 lol It really is easier to install the stuff I want manually on windows. Linux distros always end up with some prepackaged setup that doesn't work right and then I have to spend days figuring out how to fix it.

I don't like prepackaged stuff. I can never seem to find a distro that works correctly *and* has the software I want and I started using Linux since 1996 lol It really is easier to install the stuff I want manually on windows. Linux distros always end up with some prepackaged setup that doesn't work right and then I have to spend days figuring out how to fix it.

That's interesting. I use Linux for about 10 years already and troubles you're talking about have disappeared a couple of years ago or so (I have to admit - Linux was not that polished several years ago) - I can't even remember when I had a trouble with pre-packaged stuff last time (years ago, I guess)...

So, maybe it's not about OS but rather about person that is using it? )

Again: you should rather switch to Windows (If you find it easier to use... wait, really?... It's easier to install stuff manually? (Well... Yeah, some people like outdated concepts from the deep past) Go waste your time then! :-P).

Haha. Would you prefer to install software and resolve dependencies manually (e.g. like in Windows and Mac OS X)?

More like, and keep using copy N+1 of some insecure lib that comes bundled with every program ever installed. That is what happens on Windows at least. When Microsoft found a security issue in one of their core libs, they could only issue a warning, a patch for the office suite and a program for finding all the instances of the lib with the problem. This because every time one readied a installer using visual-c++ (or something like that) that lib got included to ensure the program would run out of the (proverbial) box.

I don't like prepackaged stuff. I can never seem to find a distro that works correctly *and* has the software I want and I started using Linux since 1996 lol It really is easier to install the stuff I want manually on windows. Linux distros always end up with some prepackaged setup that doesn't work right and then I have to spend days figuring out how to fix it.

That's interesting. I use Linux for about 10 years already and troubles you're talking about have disappeared a couple of years ago or so (I have to admit - Linux was not that polished several years ago) - I can't even remember when I had a trouble with pre-packaged stuff last time (years ago, I guess)...

So, maybe it's not about OS but rather about person that is using it? )

Again: you should rather switch to Windows (If you find it easier to use... wait, really?... It's easier to install stuff manually? (Well... Yeah, some people like outdated concepts from the deep past) Go waste your time then! :-P).

It was actually easier to use for me back in 96. I would install in a text gui, compile the kernel, write an xf86config file, and use enlightenment.

I can never seem to find a distro that works correctly *and* has the software I want

Sorry, I tried, but... Couldn't resist...

Here's what I always think when people say something like this:

What about all the rest of people (there're lot of them, really!), who use different distros (Ubuntu mainly though) and do not experience similar problems?...

There're two possible answers here:

[1] They are smarter than you[2] They all lie about all that "easiness" (while you don't)

Do you really believe one of those?

dicobalt wrote:

It was actually easier to use for me back in 96. I would install in a text gui, compile the kernel, write an xf86config file, and use enlightenment

I don't get it. You still can do all the same things in Linux (don't like GUI? no problem - use terminal, don't like default desktop (GNOME/KDE) for your distro? no problem - use your favourite one (WindowMaker/Fluxbox/whatever) - btw, i use own one combined of GNOME/KDE/WindowMaker).

You can even compile your software manually (and use manager like paco to manage it), etc.

The only thing - in 99% of cases you don't have to recompile kernel (drivers are auto-installed as well).

Linux is really all about freedom - you are the one to choose "what and how"! (not M$, Apple, etc.)

But freedom is sometimes really confusing for some people it seems (they really believe it's better if someone else decides for them)...

Haha. Would you prefer to install software and resolve dependencies manually (e.g. like in Windows and Mac OS X)? Package managers are designed to make your life easier - just select your software and click "Install" - and you're done with the installation (dependencies are resolved automatically) in a moment.

So have you not actually used any of those operating systems? The concept of a dependency is completely foreign on those platforms. By the way, have fun when software isnt' in the repo.

It was actually easier to use for me back in 96. I would install in a text gui, compile the kernel, write an xf86config file, and use enlightenment.

slackware, arch or gentoo perhaps? Or if your into something a bit more radical, how about gobolinux?

I used to only use slackware, mainly because at the time it was one of the last distros not to use 4 CDs just to install. And that still seems to be a trend, besides Ubuntu. And if you want to go really hardcore you use LFS and install only what you want/need.

So have you not actually used any of those operating systems? The concept of a dependency is completely foreign on those platforms.

Well, I know, that in most cases you won't experience dependency problems in Windows/MacOSX. While in Linux it's almost always the case... From other hand, in Linux all these dependencies are auto-resolved, while if you get a dependency issue in Windows/MacOSX (rare cases, but sometimes happen anyway; e.g. some codecs are needed (and not included) by audio/video editing software, etc.) - you'll have to resolve 'em manually.

TheHat wrote:

By the way, have fun when software isnt' in the repo.

I'm not saying there're no problems at all. I'm just saying that in 95% of cases, you won't have any issues with pre-packaged software and package-managers (either terminal based ones like aptitude, or GUI based ones like Synaptic or "Software Center"). In addition to that, installing external repositories (especially in latest versions of Ubuntu) is a very simple thing - this covers the rest of 5% of software that you may be missing in default/official repositories.

onkeljonas wrote:

You guys are arguing that Linux is too hard to install and use... Seriously?

Well, that's a subjective opinion, of course, but I actually believe, that most recent Linux distros (and so is Mac OS X is also) are somewhat easier to install than Windows.

So have you not actually used any of those operating systems? The concept of a dependency is completely foreign on those platforms. By the way, have fun when software isnt' in the repo.

That's a really naive statement. Dependencies exist on any system where one piece of software can use another piece of software. That applies to Windows, too. If Windows is hiding the concept of dependencies to users without managing those dependencies, it means that every "self contained" package you install has to also install everything else it needs along with it just to make sure it's there, resulting in tons of redundancy and wasted space (both on the disk and in main memory). It's far better for a component of the operating system (i.e. a package manager) to take care of all the dependencies for you to eliminate this waste and to make security updates completely trivial.

Windows users who presume that automatic dependency management is difficult for users or is less ideal than cluttering the disk and/or registry with duplicate packages are deluding themselves. I know, I know; don't feed the trolls. But I don't mind debunking misinformation with the facts, for anyone else who might come across this discussion later.

What kind of psychological issue do these people have, who are compelled to go into the comments of every article that mentions Linux (and half of those that don't) and post trash talk about how inferior they think Linux is?

Guess what--we don't care. We use Linux because we like it and we don't care if you don't. Go use whatever OS you like and stop cluttering up the comments with irrelevant crap, like a toddler who's proud he made a poo poo on the big boy's toilet and wants everyone to see it.

I don't like prepackaged stuff. I can never seem to find a distro that works correctly *and* has the software I want and I started using Linux since 1996 lol It really is easier to install the stuff I want manually on windows. Linux distros always end up with some prepackaged setup that doesn't work right and then I have to spend days figuring out how to fix it.

I can understand your problems. Pre-compiled distributions have always have this problem and it does not matter if people said that it is better now. I use Gentoo for this reason. I can manually install what I want and it does this very, very well. In compiles the program with the desire features and installs it. It is very thorough. Compiling programs to install in Linux is a better route to take to use Linux.

Arch Linux is similar to Gentoo, so you have two distributions to try.

dicobalt wrote:

13 million lines of code and you still have to use a freakin package manager to deal with the obscene dependencies.

When dealing with fixed operating system like Linux and with pre-compiled programs, things can get out of control. It is best pick a distribution that enforces to compile before installing to fix crazy dependencies.

dicobalt wrote:

13 million lines of code and I still have to recompile the kernel to install a driver.

You are wrong. If the distribution that you pick did not have the module, you can compile it separately. There are plenty of howtos do this. It is easy as the howtos say because I have done it. Though in order to compile any driver or module, you will need the kernel source code. You probably downloaded the wrong kernel source version, so you have to compile the whole kernel first.

It's funny how many commits there are, I've tried sending patches to lkml multiple times in the past and been ignored. I always got the feeling that unless you worked for redhat/ibm/novell your chances of being able to actually help out with Linux were non-existent.

Well, I think there are a lot of things you have to understand about submitting patches to kernel development and I can only theorize about the particulars of your experience as you didn't provide any context. Just because it is open source and development takes place in the public doesn't mean that the developers will accept any and every patch that comes their way. I subscribed to the LKML for years and I never saw a patch refused where there wasn't a valid point made on why it shouldn't be merged. Granted, I didn't see every patch in the world, but I saw a lot and the reasons against merging were all sound technical arguments. Just blindly submitting to the list without targeting the correct maintainers is a good path to failure.

I finally put my foot in the Linux camp by installing it at work on my PC.

The hardest thing to make work was Google Earth. It still crashes if I'm not careful. But, for everything else: office productivity, etc., it's pretty good. I'm either stuck with ancient XP (gave up on Vista, haven't tried 7 yet...). So I began to realize that if I keep it up, I'll be using an ancient, and in the near future unsupported OS. Not sure if I'm ready, however, to abandon it altogether. Though, the thing tethering me to it at home are Adobe's InDesign and Photoshop.

What kind of psychological issue do these people have, who are compelled to go into the comments of every article that mentions Linux (and half of those that don't) and post trash talk about how inferior they think Linux is?

What of those that leave comments about Vista in a Linux thread?

I run Linux on my server. I'm not going to let ignorant comments about Linux or Windows slide.

Well, that's a subjective opinion, of course, but I actually believe, that most recent Linux distros (and so is Mac OS X is also) are somewhat easier to install than Windows."

I installed Server 2008 R2 today while with almost no attention at all. Select "Install" or "Upgrade", click next....

Pick/format the drive & partition(s) you want to install on via the gui, click "Install now" Now go away for a while... The OS and all its drivers were fully loaded, the only thing I had to do was set a password and start using the OS.

Honestly I haven't installed Linux lately but it can't get much simpler than that.

Well, that's a subjective opinion, of course, but I actually believe, that most recent Linux distros (and so is Mac OS X is also) are somewhat easier to install than Windows."

I installed Server 2008 R2 today while with almost no attention at all. Select "Install" or "Upgrade", click next....

Pick/format the drive & partition(s) you want to install on via the gui, click "Install now" Now go away for a while... The OS and all its drivers were fully loaded, the only thing I had to do was set a password and start using the OS.

Honestly I haven't installed Linux lately but it can't get much simpler than that.

Congratulations, you just described the install process for just about every modern Linux distro!