Forget lofty ideals about the open-source community: most Linux kernel code is written by paid developers at major corporations.
The Linux world makes much of its community roots, but when it comes to developing the kernel of the operating system, it's less a case of "volunteers ahoy!" and more a case of "where's my pay?"
During a presentation at Linux.conf.au 2010 in Wellington, LWN.net founder and kernel contributor Jonathan Corbet offered an analysis of the code contributed to the Linux kernel between December 24 2008 and January 10 2010. (The kernel serves as a basis from which individual distributions such as Ubuntu, Debian or Red Hat are developed, though these will often add or remove specific features.)
A massive amount of coding went on in that period: 2.8 million lines of code and 55,000 major changes were contributed to the kernel, which evolved from version 2.6.28 to 2.6.32 over that time. "The development process is clearly quite alive and quite active," Corbet said, noting that this amount to more than 7,000 lines of code added every day.
The most striking aspect of the analysis, however, was where those lines of code originated from. 18% of contributions to the kernel were made without a specific corporate affiliation, suggesting true volunteer efforts. An additional 7% weren't classified. The remainder were from people working for specific companies in roles where developing that code was a major requirement. "75% of the code comes from people paid to do it," Corbet said.
Within that field, Red Hat topped that chart with 12%, followed by Inte with 8%, IBM and Novell with 6% each, and Oracle 3%. Despite the clear commercial rivalry between those players, central kernel development worked well, Corbet noted.
Those figures also don't include companies like Google which rely on Linux-based systems for their own technology, but tend not to contribute code back to the kernel. Google has said that it wants to become more involved in working with the core kernel team, moving away from its traditionally secretive approach about its own systems. "This is a process a lot of companies seem to need to go through," Corbet said.
In earlier incarnations getting support for specific devices built into the kernel has been a major challenge for Linux, but Corbet said that the process was now much more streamlined. "Hardware support is nearly universal, we support more hardware than just about any other system Graphics by the end of this year is really not going to be a big problem."
While some devices such as network adaptors still needed reverse engineering to work under Linux because vendors would not share information about their architecture, Corbet suggested those examples were rare and that alternative equipment was usually available. "The best thing to do is avoid those vendors. We really don't need them anymore."