Linux creator Linus Torvalds officially released the Linux 4.0 kernel on April 12, marking the first major number change for Linux since Linux 3.0 debuted in 2011. Although a change in numbers can often signify a major software change, in Linux development the major version numbers are more of an arbitrary decision. Linux 4.0 does, however, include a number of new innovative capabilities, including a live kernel patching capability that could help further advance server high availability.
The Linux 4.0 kernel originally started out as Linux 3.20 but was renamed after an informal online poll was conducted by Torvalds in February on whether or not it was time to change the number. The poll received 31,581 votes from Torvalds’ followers on Google+, with 56 percent voting in favor of Linux 4. Torvalds had first publicly suggested that the Linux kernel number should change back in November 2013, when the Linux 3.12 kernel was released. The last time the Linux kernel number rolled over—to Linux 3.0—the Linux kernel had reached the 2.6.39 release, and Torvalds stated at the time that he didn’t like big numbers.
“Feature-wise, 4.0 doesn’t have all that much special,” Torvalds wrote in his Linux 4.0 release message. “Much has been made of the new kernel patching infrastructure, but realistically, that not only wasn’t the reason for the version number change, we’ve had much bigger changes in other versions.”
The Linux 4.0 kernel is very much a “solid code progress” release, according to Torvalds. The live kernel patching capability is not a new feature in the broader Linux ecosystem. Oracle has a technology capability known as Ksplice that enables live kernel patching, although Ksplice is not open source code that is directly integrated in the upstream mainline Linux kernel.
Efforts to develop an integrated mainline Linux kernel live patching capability accelerated in 2014 with the development of two rival approaches. Red Hat was in the process of developing its kpatch approach, while SUSE was building a technology known as kgraft. The live kernel patching capability integrated into the Linux 4.0 kernel is the result of a joint effort between Red Hat and SUSE to bring their respective approaches together.
Linux kernel developer Jiri Kosina explained in a Linux Kernel Mailing List message that the new code framework from Red Hat and SUSE provides an infrastructure for the functional live patching of a Linux system. “It’s relatively simple and minimalistic, as it’s making use of existing kernel infrastructure (namely ftrace) as much as possible,” Kosina wrote. “It’s also self-contained, in a sense that it doesn’t hook itself in any other kernel subsystem (it doesn’t even touch any other code).”
In addition to the new live patching code, there is a new Linux “code of conflict” that was merged into the kernel during the Linux 4.0 development cycle. The code of conflict is an attempt to help deal with potential conflict between Linux kernel developers.
“As a reviewer of code, please strive to keep things civil and focused on the technical issues involved,” the Linux code of conflict code merge states. “We are all humans, and frustrations can be high on both sides of the process. Try to keep in mind the immortal words of Bill and Ted, ‘Be excellent to each other.'”
Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.