Over the last three years, the number of developers of the Linux kernel has tripled, according to the Linux Foundation. A research team from the organization has reported that the growth of the open source operating system into new areas is attracting more hands-on code writing of the Linux engine.
The kernel forms the core of the Linux system and is the result of one of the largest cooperative software projects ever attempted, according to the three Linux Foundation researchers. The Linux Foundation issued the report this month.
The report sheds some light on the role investment companies make in the Linux open development environment compared to the Microsoft Windows closed environment. The continuing growth of Linux has a lot to do with the changing economics of software development and what fuels today’s Web 2.0 innovation, the report writers concluded.
“Knowledge about the inner workings of Linux are important today. Nearly all people touch Linux every day by using the Internet, mobile phones, TiVo devices and GPS (global positioning system) receivers,” Amanda McPherson, marketing director of the Linux Foundation, told the LinuxInsider. McPherson was one of three authors of the report.
Who’s Doing What?
The report tracked the individuals and corporations contributing to the Linux kernel development. Researchers found that the numbers of different individual developers and sponsoring companies have been increasing over the different kernel versions. For instance, the individual development community has doubled in the last three years.
Despite the large number of individual developers, a relatively small number are doing the majority of the work. Over the past three years, the top 10 individual developers have contributed almost 15 percent of the changes. The top 30 developers have contributed 30 percent.
More than 70 percent of all kernel development is done by developers who are being paid for their work, according to the report. Researchers also found that a small number of companies is responsible for a large portion of the total changes to the kernel. However, there is a long list of companies making significant changes.
Driving Forces
The origin of the white paper is rooted in articles from Jonathan Corbet of LWN.net, according to McPherson. He focused on a data management tool for the Get command used to automate the process of loading software updates from Linux repositories to the various Linux distributions.
Greg Kroah-Hartman of Suse Labs/Novell contributed additional research on the topic. McPherson joined the writing team to expand the concept into a white paper.
Two factors are responsible for Linux’s expansion into new market areas, according to McPherson. One is the increasing use of Linux on desktop computers; the other is the use of Linux embedded into products and as the operating systems in mobile devices, including sub-US$300 laptops and hand-held computers.
“Linux continues to succeed in the sever market. It stole market share from Unix,” she explained.
Why Kernel Research?
The Linux kernel is one of the largest individual components on any Linux system. It envelops one of the fastest-moving development processes and involves more developers than any other open source project, according to the researchers. The white paper discusses how that process works, using nearly three years of kernel history, as represented by the 2.6.11 through 2.6.24 releases.
The Linux kernel manages the device’s hardware, runs user programs and maintains the overall security and integrity of the entire operating system. By comparison, the kernel is a much smaller software segment on a full Linux system, explained the report’s authors. For example, large components of the Linux OS come from the GNU project, the GNOME and KDE desktop projects and the X.org project.
However, the core determines how well the system will work and is the piece which is truly unique to Linux, the report’s authors said.
Rigid Upgrade Path
Starting with the 2.6.x series, developers placed the Linux kernel on a relatively strict, time-based release model. At the 2005 Kernel Developer Summit in Ottawa, Canada, developers decided that kernel releases would occur every two to three months. Also, each release would be designated as a “major” release containing new features and internal application programming interface changes.
Developers agreed to the fast release cycle to more quickly get new features distributed to users in a stable form with minimal delay. New code — features, device drivers, etc. — is available in a stable kernel within a few months of its completion, minimizing or eliminating the need for distributors to backport developmental code into stable releases, according to the report.
The results are kernel updates with fewer distribution-specific modifications, yielding higher stability and fewer differences between distributions. This contributes to a more stable release because there is a smaller list of outstanding bugs. For problems which turn up after a kernel release, the “-stable” branch exists as a way to quickly get fixes out to the community, noted the report.
Kernel Prep
Developers prepare submissions to the Linux kernel by breaking their changes down into small, individual units, called “patches.” These patches usually do only one thing to the source code.
Also, the patches are built on top of each other. This modifies the source code by changing, adding or removing lines of code. Each patch should, when applied, yield a kernel which still builds and works properly.
The average time between Linux kernel releases is 2.7 months.