It was just one week ago that Linus Torvalds brought up the matter of whether its time to end the Linux 2.6 kernel series with there already being 39 major releases and its development period having lasted longer than major series in the past.
Linus at first was considering the next kernel series to be Linux 2.8, but then that changed to being the Linux 3.0 kernel series. It looked likely that it was the end of the road for Linux 2.6 with the kernel developers being quite positive towards a change.
The discussion had largely been around whether to call the next kernel release Linux 2.8, 3.0, or something else. A number of developers were interested in the versioning being more date/time oriented.
Some developers also expressed that this move to tagging the Linux 3.0 kernel would be a good turning point to remove some old cruft from the kernel, e.g. old subsystems and drivers that are seldom -- if ever -- used today, especially by those that are still updating their software components. There was also at least one suggestion of stalling the Linux 3.0 kernel change until the ARM architecture code was cleaned up. Linus rejected these notions that the kernel versioning change wouldn't be tied to such milestones, but such work could occur organically over time.
The discussion over this kernel versioning change had died down in the past couple of days, but to some surprise, hitting my kernel Git notifications this evening is a "Linux 3.0-rc1" commit. The commit message from Linus Torvalds simply reads:
.. except there are various scripts that really know that there are three numbers, so it calls itself "3.0.0-rc1".
Hopefully by the time the final 3.0 is out, we'll have that extra zero all figured out.
No Linux 3.0-rc1 kernel release announcement has yet to hit the Linux Kernel Mailing List with any other commentary from Linus, but it will probably be due out shortly.
Under this new versioning model, the next major release of the Linux kernel to follow will be Linux 3.1, then Linux 3.2, etc. There will still be the stable point releases to each series as Linux 3.0.1, 3.0.2, etc.
Besides changing the kernel name from what would have been the Linux 2.6.40 kernel to now being the Linux 3.0 kernel, there are a number of changes to be excited for when this release officially occurs later in the summer. Some of the notable items that are new to this kernel release include:
- Cleancache support, with initial implementations for the EXT4 and Btrfs file-systems, among others.
- A Microsoft Kinect Linux driver.
- Various open-source graphics driver improvements. This includes Sandy Bridge performance optimizations, initial support for Intel Ivy Bridge, early work for AMD Fusion Llano APUs, and many other Intel / Radeon / Nouveau changes. But this kernel still has various open-source GPU driver bugs.
The Linux 3.0 kernel will also lack a number of features including the Reiser4 file-system, the VIA KMS/DRM driver, an accelerated Poulsbo / PowerVR DRM driver, multi-GPU rendering, and various other long sought after items. The major Linux kernel power regressions have yet to be resolved as well, but that's still on my TODO list to finish bisecting those two nasty bugs.
UPDATE: Linus has just written the 3.0-rc1 announcement and has sent it to the LKML. Below is the 3.0-rc1 release announcement in full.
Yay! Let the bikeshed painting discussions about version numbering begin (or at least re-start).
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 longer comfortably 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 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, I think that in addition to the shorter merge window, I'm also considering make this one of my "Linus is being a difficult ^&^hole" releases, where I really want to be pretty strict about what I pull during the stabilization window. Part of that is that I'm going to be travelling next week with a slow atom laptop, so you had better convince me I *really* want to pull from you, because that thing really is not the most impressive piece of hardware ever built. It does the "git" workflow quite well, but let's just say that compiling the kernel is not quite the user experience I've gotten used to.
So be nice to me, and send me only really important fixes. And let's make sure we really make the next release not just an all new shiny number, but a good kernel too.
Go forth and test,