
In case you missed it, Linux is turning 3. Well, really, it's turning 20. 20 years of Linux have come and gone, and yet, until recently, we've been stuck in 2.6.x kernel hell. The kernel has been in the 2.6 phase for almost half of that 20 years, in fact. This has caused endless annoyances for developers and distribution managers, sadly.
You see, because my laptop runs kernel 2.6.32, it is relatively up to date. It includes the Completely Fair Scheduler, and a host of other major improvements over, say, a machine running 2.6.20. One might even suggest that two machines running kernels that far apart are essentially running completely different Linuxes. It's like the difference between Windows XP and Windows 7.
And, of course, marketing always gets involved. When buying a Linux-based device, for example, it's almost a given that the marketing materials will claim the machine uses an "up-to-date 2.6 Linux kernel!" Which is like saying my Buick uses an up-to-date radio that accepts portable media. The secret that's being left out in both cases is that the definition of a 2.6 kernel is just as broad as the definition of portable music media. Heck, records are portable. So are tapes. And a Linux machine running 2.6.5 is still a 2.6 kernel-based Linux machine.
Here's Linus discussing the 3.0 shift on the Linux Kernel Mailing List:
I decided to just bite the bullet, and call the next version 3.0. It will get released close enough to the 20-year mark, which is excuse enough for me, although honestly, the real reason is just that I can no longe rcomfortably count as high as 40.
The whole renumbering was discussed at last years Kernel Summit, and there was a plan to take it up this year too. But let's face it - what's the point of being in charge if you can't pick the bike shed color without holding a referendum on it? So I'm just going all alpha-male, and just renumbering it. You'll like it.
Now, my alpha-maleness sadly does not actually extend to all the scripts and Makefile rules, so the kernel is fighting back, and is calling itself 3.0.0-rc1. We'll have the usual 6-7 weeks to wrestle it into submission, and get scripts etc cleaned up, and the final release should be just "3.0". The -stable team can use the third number for their versioning.
So, there you go. Version 3.0 mystery solved. While other projects spend time pushing out big changes to coincide with major point release updates, Linux has simply moved to 3.0 because it was time. No fancy new features, no crazy hooplah about how 3.0 wil change your life. It's just a number.