If I tell you to think of an open-source project, the first word that probably comes to mind is Linux. (Bonus points if you thought of Firefox or Apache, but for the sake of argument let’s just say that you thought of Linux). Then, if I ask you what open-source actually means, you’d probably say something like: “Open source means everyone is free to use the code, and it’s usually developed by lots of independent programmers, who contribute their work freely, to make the world/internet a better place.” That’s what I thought, too, until I read The Linux Foundation’s somewhat-annual report on the state of the Linux kernel. The report’s findings may surprise you.
To begin with, take a look at the chart above (which was compiled by IEEE Spectrum, incidentally). The graph shows the breakdown of all patches contributed to the Linux kernel, between versions 3.0 and 3.10. You can clearly see that over 80% of all contributions are from developers who are paid by a large, commercial company. The report says that the number of unpaid developers contributing to the Linux kernel has been slowly declining for many years, now sitting at just 13.6% (it was 14.6% in the last report).
Unsurprisingly, Red Hat — one of the very few open-source Dot Com success stories — rules the roost. The Linux Foundation reports that, over the past year, there has been a sizable increase from companies that make mobile and embedded systems (Samsung, Texas Instruments, Linaro). In the previous report, these three companies contributed just 4.4% of the kernel changes — this year, it’s up to almost 11%. Linaro, if you haven’t heard of it, is a not-for-profit company set up by ARM, Freescale, IBM, Samsung, ST-Ericsson, and Texas Instruments, for the sole purpose of improving Linux’s ARM support. Non-profit doesn’t mean Linaro developers don’t get paid a lot of money, however.
Finally, the last main factor that the report draws our attention to is the swelling size of kernel’s source code. Between Linux 3.0 (July 2011) and Linux 3.10, more than 2.3 million lines of code have been added to the kernel. As of Linux 3.10, there was almost 17 million lines of source code in the Linux kernel (and we’re now up to version 3.13, so it has probably swollen yet further). The number of files that make up the kernel has jumped from 37,000 to 43,000, too. When the Linux kernel was first released in 1991, it had just 10,000 lines of code. For the most part, this inflation is due to drivers and support for new filesystems. During the build process, only the lines of source code that are actually required by your hardware will be compiled, which in reality will be a small fraction of those 17 million lines.
As for why Linux is now mostly developed by well-paid engineers, the possible reasons are myriad. The most obvious and compelling reason is that these big companies have a commercial interest in the continued good health of Linux. 10 years ago, Linux was the plaything of hobbyists and supercomputer makers — today, it powers everything from smartphones (Android) to wireless routers to set-top boxes. The continuing commercial interest in Linux is highlighted by another statistic from The Linux Foundation report: In mid-2011, only 191 companies were involved in the Linux kernel; by the end of 2013, that number was up to 243.
Really, we should be grateful that these companies don’t seem to be skewing the development of Linux towards their own commercial needs. Such is the magic of open source — and the iron fist of Torvalds and his fellow maintainers.