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 below (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 per cent 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 per cent (it was 14.6 per cent 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 per cent of the kernel changes – this year, it’s up to almost 11 per cent.
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.
The report also highlights the decreasing amount of direct involvement that Linus Torvalds has with the patching process – the image below shows who signs off on Linux kernel patches. Torvalds (the creator of Linux, and still very much the project’s overall coordinator) signed off on just 568 patches (0.7 per cent) between versions 3.0 and 3.10. Nowadays, Torvalds has delegated signoffs to subsystem maintainers – most of which are highly paid employees at Red Hat, Intel, Google, and so on.
Finally, the last major factor that the report draws our attention to is the swelling size of the 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 file systems. 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.
Image Credits: IEEE Spectrum