7 Linux Facts That Will Surprise You
Here are seven things we bet you didn't know about Linux and why it remains a software project of historic proportions.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blt2fb21b3c60b82781/64cb57bef5765c4af058cbee/INTRO.png?width=700&auto=webp&quality=80&disable=upscale)
In the 20 years since Linux 1.0 first appeared, the open source operating system has become one of the major winners in the enterprise data center, alongside Microsoft Windows. Linux also has a presence on the public Internet and in public cloud services.
But we don't hear a lot about the ongoing development of Linux. In 2007, Linus Torvalds and the other Linux kernel committers were adding patches to the kernel at the rate of 86 per hour, or 1.43 per minute. InformationWeek reported in 2007 that Linux, then 16 years old, was the largest sustained software project in the world. Dan Frye, an IBM VP who tracked it, then said: "No other open source project has gotten this large or moved this fast. It's a first-of-a-kind developer community."
At the time, InformationWeek asked whether any open source project could maintain the discipline and manage the flood of outside contributions from a constantly rotating list of contributors that had characterized the progress of Linux up to that point. It was clear at the Linux Collaboration Summit in Santa Rosa, Calif., last week, that the pace of support for Linux has not only been sustained, but has picked up in those intervening years.
On the following pages, we share seven things we learned at the annual Linux Collaboration Summit that you probably don't know about the modern version of Linux, including how it remains the world's largest sustained software project.
In 1991, computer science grad student Linus Torvalds closed himself in his bedroom to create Linux. He emerged many weeks later with 10,250 lines of code for a working kernel. Although much more work needed to be done, Linux was off and running. A 1.0 production version of the kernel came out in 1994. As of December 2014, 20 years later, the Linux kernel had grown quite a bit. The 3.18 kernel contains 18,997,848 lines of code. It grew by 1 million lines over the course of six releases through 2014.
With nearly 19 million lines of code, the prevailing image of Linux as an establishment operating system is solidified. The OS does all things for all people, and is expanding under the tutelage of the same core group of developers who got Linux inside the enterprise door in the first place. But Jim Zemlin, executive director of the Linux Foundation, said during his opening address at the Linux Collaboration Summit that Linux constantly attracts new blood. Few software projects succeed at integrating the efforts of 4,169 developers. And "half were first time contributors," Zemlin said.
With that many lines of code and that many developers, the pace of Linux has surely slowed down. You don't hear much about Linux kernel development anymore because it just plods along at the same old pace, right? Wrong.
There was a time 10 years ago when the pace of Linux development had slowed. New kernels emerged only after many months, sometimes as long as a year, and ideas for additions, contributions of code, and bug fixes piled up as the kernel development process struggled to cope with all the items streaming at it. But project leader Linus Torvalds saw how the long waits and lack of response to contributors was harming the process. He vowed at a Linux Summit in Cambridge, England, to speed it up.
Since then, a new kernel has emerged every 90 days or so, a pace that many large projects -- let's say Windows -- would find pretty frenetic. And lately, the kernel's pace has come closer to an average of 70 days. The 3.18 kernel was produced in 63 days, the second shortest time between two kernels on record. "I don’t know how much shorter we can get," said Jonathan Corbet, a kernel developer and editor of the Linux Weekly News, during a presentation on Feb. 18, 2015, at the Linux Collaboration Summit.
If the time before releases is so short, then there must be fewer additions and changes to the kernel with each release, correct? That's right.
A report from Linux Weekly News' Jon Corbet on Linux patches, new features and bug fixes, which has come to be a regular feature of the annual summit, said there were 11,379 patches to the 3.18 kernel. This is 2,343 fewer that the number of changes to the 3.15 release, which came out in June 2014 and is the most changed kernel ever. In terms of changes per hour, there were 7.53 per hour in the 3.18 release, compared to 8.17 in the 3.15 release. It's a reduction, but close to the average for recent kernel releases overall. And the earlier 3.15 release, of course, took longer to produce, requiring 70 days.
The top 10 list of Linux contributor companies changed in 2014, with Intel displacing Red Hat in the top spot. The single greatest category of kernel code is device drivers, accounting for more than 10 million lines. Needless to say Intel is active there. To get a top 10 list of companies, you have to ignore independent developers who are not associated with a particular company. Collectively, these developers represent the single largest source of contributions. They, along with a group of "unknown" contributors whose affiliations can't be determined, sit somewhere in the middle, among a group of top 12 contributors. Jon Corbet, of Linux Weekly News, concluded that 80% of the contributions coming to the Linux kernel are from developers paid by a company to do the work on Linux. Here's the full list from Corbet:
1. Intel
2. Red Hat
3. Linaro (founded by IBM, Samsung, and ARM to improve Linux performance on Android devices)
4. Samsung
5. IBM
6. SUSE
7. TI
8. Vision Engraving Systems
9. Google
10. Renesas Electronics
Those nearly 19 million lines of kernel code bother some people, and there's a movement afoot to produce a version of the kernel that reduces its size, known as the Tinification project (read: Tiny-fication). According to the project's manifesto: "Over time, the Linux kernel has grown far more feature-ful, but it has also grown much larger, even with all the optional features turned off. The Tinification project aims to reverse that trend, making the kernel much smaller, to enable ridiculously small embedded applications and other fun uses."
That's easier said than done. A cardinal rule of Linux development is "Don't break backward compatibility." Tinification won't do that. Any existing use needed by a target device will work on a modern but tinified kernel. But it will include an option to intentionally leave out functionality unneeded by a particular device. The current Linux kernel requires a megabyte of memory. Tinification is creating the option to omit a few kilobytes over and over again by eliminating system calls and functionality that a target device will never use, in order to cut the embedded kernel down to size.
The time period between kernel updates is important because the kernel development team is trying to stay ahead of bugs and vulnerabilities before they lead to trouble in production systems. A new kernel undergoes testing before release and that testing keeps improving. But no one is under the illusion that 19 million lines of code can't harbor a few bugs. In 2015, bug fixes won't have to wait for a kernel release. Once tested and approved, bug fixes will be loaded into the mainline kernel, the one Torvalds releases every 60-90 days, through live kernel patching. Thus, if you download a kernel 10 or 12 days after it's been issued, chances are there will be several additional bug patches in it.
-
About the Author(s)
You May Also Like