After noodling it around for a while, Linux kernel maintainer Linus Torvalds has decided to shift the version numbering from the 2.6 kernel scheme to a 3.0 version scheme, the first significant change to the kernel numbering system since 2004.
It's a change that's been a long time coming for many kernel developers, and one that will inevitably bring hype.
The new 3.0 kernel tree won't have any significant technical changes, beyond the usual incremental changes found between the typical Linux kernel 2.6.x kernel releases. Torvalds made this very clear in his announcement message, hoping to circumvent some of the inevitable hype and worries that are found around a .0 version:
"So what are the big changes?
"NOTHING. Absolutely nothing. Sure, we have the usual two thirds driver changes, and a lot of random fixes, but the point is that 3.0 is just about renumbering, we are very much not doing a KDE-4 or a Gnome-3 here. No breakage, no special scary new features, nothing at all like that. We've been doing time-based releases for many years now, this is in no way about features. If you want an excuse for the renumbering, you really should look at the time-based one ('20 years') instead.
"So no ABI changes, no API changes, no magical new features - just steady plodding progress. In addition to the driver changes (and the bulk really is driver updates), we've had some nice VFS cleanups, various VM fixes, some nice initial ARM consolidation (yay!) and in general this is supposed to be a fairly normal release cycle. The merge window was a few days shorter than usual, but if that ends up meaning a smaller release and a nice stable 3.0 release, that is all good. There's absolutely no reason to aim for the traditional '.0' problems that so many projects have."
In fact, really, there is nothing in the upcoming 3.0 kernel that makes this any different than what would be 2.6.40.
Except for the spiffy new name.
Torvalds himself mentioned the 20-year anniversary of Linux may have played a hand in his decision, though his lieutenants have been pushing for a version numbering change for quite a while. The last big push came in July 2008, when one kernel developer Stoyan Gaydarov wondered about a return to the former even/odd numbering scheme the kernel had up until 2004. At that time, Torvalds deferred the discussion to an upcoming kernel summit.
In October 2008 kernel maintainer Greg Kroah-Hartmann picked up the discussion again:
"So, as someone who constantly is dealing with kernel version numbers all the time with the -stable trees, our current numbering scheme is a pain a times. How about this proposal instead?"We number the kernel based on the year, and the numbers of releases we have done this year:
That proposal never got past the discussion stage, and version numbering continued in the 2.6 kernel tree.
Version numbering for the Linux kernel has been in the 2.6 tree since 2004, when the kernel development team shifted from an even/odd numbering development process. Kernels numbered with 2.even were considered stable and ready to release, and 2.odd kernels were considered unstable, development branches where all the messy, gory development stuff happened.
As the development process became more streamlined between Torvalds and the other maintainers, the system changed to incremental point-version releases with shorter merge windows.
A merge window is analogous to the guy in Monty Python and the Holy Grail shouting "bring out y'r dead," except instead of dead (or almost dead) people, developers are invited to bring forth their pre-approved code changes to try to bring them into the mainline Linux kernel. If the code can be integrated without breaking itself or anything else in the kernel, then it will be included in the final release of that version of the kernel.
The merge window for the new Linux 3.0 kernel (which is actually named 3.0.0-rc1 for now) will be particularly short, since Torvalds is about to leave for the upcoming LinuxCon show in Yokohama, Japan that's taking place June 1-3.
Though the technical implications of the new 3.0 kernel name are minor, you can bet that this was a change welcomed by the Linux Foundation, host of the LinuxCon conference and stewards of the Linux kernel. One of the main functions of the Linux Foundation is to provide Torvalds with a salary so he con continue to work on the Linux kernel without being beholden to one commercial entity. Often people mistake this relationship as the Foundation gets to boss Torvalds around. They emphatically do not.
But given the timing, I have to wonder if Jim Zemlin, executive director of the LF, heard about Torvalds' consideration of changing the numbering system and put his two cents in with all the others on making the change. The Foundation would like a change to stir up the media pot more around the LinuxCon event.
Despite Torvalds' emphatic notes that 3.0 is not going to be a major technical change, I can't wait to see which Linux distribution trots out a 3.0 kernel with all the full marketing power they can bring to bear. The rest of us will know it's 2.6.40 with a fancy new label, but what self-respecting marketing person could resist trying to one-up their competitors when they have an "obsolete" 2.6 kernel?
I am also looking forward to all of the bad press that will come out hailing this new 3.0 release as the coming of the messiah and then turn around with bad reviews of how disappointing this shiny new 3.0 release is. You wait, it'll happen. I, for one, will happily mock such reports.
It's unavoidable, of course. No matter how much this change is downplayed, people are going to ascribe more to a .0 release than may be warranted. We like milestones because they mark a time of change. Even if that change is contrived. The human race just didn't suddenly change after midnight December 31, 2000 to a futuristic society with flying cars and plastic clothes. No, the first day of the new century was pretty much like the day before.
And this new kernel will be a lot like the one before it. A few new features, a few less bugs, maybe a new hiccup to be discovered.
But that's the whole beauty of the Linux kernel. It's not about big sweeping versions released every few years from closed systems where ISVs and users don't really know what's coming. It's about smaller, open changes that steadily march towards an improved kernel every time.
No matter what the label.