What’s in a number?
I got to thinking about this when a question was asked about the kernel version I’m running on my desktop. The question presumes that just because I don’t have the most ecent kernel version, or rather kernel line, that somehow I’m shortchanged or missing something.
Nothing could be further from the truth.
HOW OLD IS YOUR EQUIPMENT?
Age is relevant to the question about loss of utility. The kernel I’m running was released last week — it isn’t archaic and it isn’t out of date. This computer is older than the 2.4 kernel. It has a 400mhz Celeron processor and over the years it’s received what I consider very minor upgrades over the decade or so I’ve had it. First there was the doubling of RAM from its original 64 to 128. Then this past winter I doubled it again to 256. Hardly impressive, but it makes a big difference in how it functions. This computer will probably outlast me and I don’t intend to toss it out while it still works.
When I bought this computer, Linux was still in 2.2 — 2.4 was available. I think I installed my first 2.4 kernel some time in 2003 when 2.2 development ceased. It was 2.4.10, IIRC (I’m not 100% sure of 2.4 version but I know it was 2003 when 2.2 development stopped — same year MS was supposed to drop NT4 life cycle support), when I switched. I think I could still resort to 2.2 and have nearly full function for everything this computer needs except (maybe) the particular USB adapter I use now (I’d been able to use CDCEther previously but that required connecting directly via bridge). I’d have to check changelogs and see if the adapter would work with 2.2. But 2.4 is very manageable for this particular computer (and would be reasonable, imo, even for my 1.4ghz Athlon box).
HOW OLD IS YOUR KERNEL?
The kernel is probably the one part of the system that can continue to be updated even when various software — especially window managers, desktop environments, and GTK+ applications — become too hefty to keep updated. I wasn’t enthralled with KDE or Gnome when I first used them. They’ve become much to cumbersome since then to use on this computer. Even Xfce is a bit too much now, imo.
WHAT’S THE BEST GUIDELINE BETWEEN HARDWARE AND KERNEL VERSION?
How do kernel changes relate to your own hardware? I don’t think too much has changed in terms of function between what was contemporary when this computer was bleeding edge. Many changes in kernel versions are bug fixes and security patches and the like. There’s some performance enhancements and lots of new drivers for newer hardware — I’d appreciate performance gains I might get from 2.6 (threading?) but I don’t need support for stuff this computer doesn’t and won’t have. I’m not hamstrung or limited or reducing anything. It freaking works.
If you have much more recent hardware, you obviously need a newer kernel with newer drivers; some of the newer drivers (including SATA support) are also in 2.4 so you don’t necessarily need 2.6.
If you’re still using older hardware — and I am — how new does your kernel really need to be? I think it’s a testament to the wisdom of Linus Torvalds and all the contributors to his kernel that what was efficient on this computer nearly a decade ago doesn’t really need much improvement. Certainly there are bug fixes and security issues that have been dealt with in the interim. Those don’t require the size of a 2.6 kernel.
I think it’s also fair to make this kind of comparison with other operating systems. When this computer was new, it had all kinds of stickers about how it was engineered for Windows 98. Windows 98 was gone shortly (as in hours) after I got it home, and the stickers still decorate an old desk like little war trophies.
Could this computer run XP? Yeah, but it would crawl. Even with 256MB of RAM now, I wouldn’t care to see how it runs. I wouldn’t even think of installing Vista on it. I thought of using my WinNT license with it but the only way to get USB support is via third party (Dell has a free driver) and Microsoft no longer issues SPs for NT. So what’s the point?
Yet that’s what I see so many people doing in equivalence with Linux. They’re taking bleeding edge distros intended for XP/Vista-era hardware and installing on Win95/98-era hardware. Sometimes the results are acceptable, but I’ve used KDE on this computer (last version: 3.5.8 iirc) and it was too slow for my tastes despite my best efforts to reduce icon sizes and other factors that can bog it down. The question I was asked isn’t asked in reverse — “Do you really need such new software on older hardware?”
I don’t think anyone does unless they have some new device that has only recently gotten driver support somewhere in the kernel. That’s the case with my laptop because I sold and loaned out my other two wireless devices that were 2.4-capable and my current card — Broadcom 43xx — has had kernel support since 2.6.19.
I mentioned something above about contemporary hardware:software relationships. While development continues, hardware is a snapshot in time. One of the things that many people observe when trying to keep bleeding edge software on vintage hardware is that it rarely works better than the software that was bleeding edge when the hardware was. Isn’t that to be expected when the software is being targeted at hardware made at that particular point in time?
That’s one of the reasons why I think Linux advocates are off-base when they suggest that newer distro versions are appropriate for older hardware. They rarely are. There are some that work better than others, and some that are oriented for older hardware. Truth be told, it rarely makes sense to upgrade more than two years after your computer becomes kind of “old” — which I put around five, six years. In the case of this old desktop, I could still happily run Slackware 8 which is still supported with updates (security, bugs, etc.).
There’s also something else to be said here about support cycles. Microsoft tries to keep its OS support on about seven year cycles. They take a lot of flack for doing that from users and critics alike. Ubuntu has LTS (long term service) which runs in five year cycles. They seem to get praise for five year cycles from the very people most willing to criticize Microsoft for seven year support cycles. Hypocrisy. But the point is, you can find adequate support for average hardware life cycles without having to stay bleeding edge — Windows does it, Slackware does it, and even Ubuntu does (though they’re relatively new to the game).
I think what matters most, though, is matching software to hardware with respect to era. What’s in 2.6.25 that I need on this desktop? Nothing. This computer is Linux 2.2/2.4-era — the same time frame as pre-XP. I have legitimate needs for 2.6 on a couple of my other computers — such as for bcm43xx support for the laptop and some of the new (proprietary) video drivers for the new desktop (I think I also scrolled past what I need in menuconfig for 220.127.116.11…).
In conclusion, don’t presume that the higher version number is inherently better for everything. It may be, it may not be.