KS2008: Linux 3.0
There was some talk about the cost of maintaining older drivers and interfaces which are used by few people. This code requires updates for API changes and may contain security holes. In many cases, the drivers are for hardware which is unable to support features needed by contemporary software, with the result that users complain about tools like PulseAudio not working properly.
Linus came into the discussion early to state his unhappiness with the idea. The cost of maintaining these old drivers, he asserts, is essentially zero. And, in places where there are costs, that is OK with him as well. In particular, it's fine with Linus if API changes are a pain; he wants developers to have to think about whether an API change is worth the trouble or not.
Linus also pointed out that a lot of hardware which kernel developers see as being useless junk is, in fact, still useful in many parts of the world. There are a lot of people using old stuff, and he does not want to pull the rug out from under them. He is also not concerned about claims of possible security problems with the older code; should such problems exist, he says, they will affect so few people that it's really not worth the trouble for any self-respecting cracker to exploit. So, he concluded, any sort of driver removal might end up getting rid of all of five drivers, which is probably not worth the effort.
James Bottomley expressed concern that, by disclaiming concern about things like security issues, we could be creating a two-tier system of support. Older hardware may be nominally supported, but no developers are really interested in keeping the code up, and nobody has the hardware to test them.
Christoph Hellwig pointed out that creating a major release which only removed features would be a "marketing disaster."
From there, the discussion began to drift a bit. Dave Jones suggested (to general applause) that a useful thing to deprecate would be the "deprecated" marker used within the kernel source. Deprecated functions generate large numbers of warnings, but nobody bothers to fix them; all the deprecation warnings really do is mask other, more important warnings. Christoph noted that the checkpatch.pl script can also warn about deprecated functions, and that it was a much better place for it: there, the warnings affect the person submitting a patch instead of everybody building a kernel.
Then it was suggested that, perhaps, a concerted effort should be made toward the removal of all warnings from the kernel build. That idea did not get very far either. Quite a few warnings from GCC are bogus, in that they are complaining about entirely valid code. Fixing warnings like that risks masking other problems and introducing bugs in its own right. Christoph suggested that the warning issue could only really be resolved when we start shipping GCC with the kernel source.
The sparse tool was discussed for a bit; the warnings generated by sparse are seen as being more useful much of the time. But, as Linus noted, sparse has its own set of bogus diagnostics and is not a perfect solution either.
Heading back toward the original topic, the developers talked about the maintenance of ancient system call compatibility interfaces. Linus talked about how nice it is to know that we can still run binaries from 1991; we should be proud of that fact. The associated cost is, once again, quite small. Matt Mackall then said that, if we are continuing to maintain those interfaces forever, there is little point in discussing the removal of other interfaces.
The end result from this discussion would appear to be that there will be
no change. Compatibility with old hardware and interfaces remains a
priority for the kernel, especially as long as the cost of retaining that
compatibility is small.
Index entries for this article | |
---|---|
Kernel | Development model |
Posted Sep 16, 2008 9:11 UTC (Tue)
by nix (subscriber, #2304)
[Link] (7 responses)
I know a.out support is routinely broken for fairly long stretches of time, and nobody notices.
We can still run binaries from 1991, *in theory*. The practice seems to be quite different.
IMHO we could probably drop all syscalls that were obsolete before the a.out->ELF transition without anyone noticing for a very long time indeed. (a.out support itself might be trickier to drop: is anyone still using it anywhere?)
Posted Sep 16, 2008 13:34 UTC (Tue)
by dlang (guest, #313)
[Link] (6 responses)
Posted Sep 16, 2008 14:40 UTC (Tue)
by proski (subscriber, #104)
[Link]
Posted Sep 16, 2008 14:42 UTC (Tue)
by bfields (subscriber, #19510)
[Link] (4 responses)
(Woah, I just wrote a whole program with "cat >test.c", I must be 133t!)
Posted Sep 16, 2008 15:19 UTC (Tue)
by nix (subscriber, #2304)
[Link] (3 responses)
gcc -x c <<'EOF'
:)
Posted Sep 16, 2008 16:16 UTC (Tue)
by jzbiciak (guest, #5246)
[Link] (1 responses)
Posted Sep 16, 2008 20:16 UTC (Tue)
by nix (subscriber, #2304)
[Link]
Posted Sep 16, 2008 21:20 UTC (Tue)
by jengelh (subscriber, #33263)
[Link]
Nah, you can't correct a line once you hit enter. But you can do it in one line:
Posted Sep 16, 2008 11:38 UTC (Tue)
by nettings (subscriber, #429)
[Link]
of course, that doesn't invalidate the other concerns about a 3.0 as envisioned by alan cox.
Posted Sep 16, 2008 11:51 UTC (Tue)
by Cato (guest, #7643)
[Link] (14 responses)
In fact the same goes for individuals who want to use older systems as secondary computers. I have only just thrown out a 12 year old 486 laptop that was a Linux firewall in its later years, and I still sometimes use Ethernet cards of similar vintage in other laptops.
Posted Sep 17, 2008 8:04 UTC (Wed)
by spaetz (guest, #32870)
[Link] (13 responses)
Posted Sep 17, 2008 11:06 UTC (Wed)
by dgm (subscriber, #49227)
[Link] (4 responses)
Posted Sep 17, 2008 11:56 UTC (Wed)
by NAR (subscriber, #1313)
[Link] (1 responses)
Anyway, as far as I know, some bugs in the 2.4.x series are still being fixed. I guess that 2.4.<late> would run on the same hardware as the more than 7 years old 2.4.0.
Posted Sep 18, 2008 6:57 UTC (Thu)
by dlang (guest, #313)
[Link]
yes, most bugs that are being fixed were introduced durng the 2.6 days, that could be because there have been more lines of code writen for 2.6 then for all prior kernels combined (I don't know that for sure, but with the pace of development that's happening in 2.6 I would not at all be surprised)
Posted Sep 17, 2008 12:02 UTC (Wed)
by spaetz (guest, #32870)
[Link] (1 responses)
Posted Sep 17, 2008 14:21 UTC (Wed)
by xoddam (guest, #2322)
[Link]
LOL. 16-bit processor without an MMU. ELKS supports it, but (a) ELKS is moribund and (b) it never tracked mainline Linux security updates.
Probably better off with minix 1.x.
Posted Sep 17, 2008 14:46 UTC (Wed)
by martinfick (subscriber, #4455)
[Link] (5 responses)
Are you assuming that the only reason people ever upgrade kernels is for new hardware drivers?
Posted Sep 18, 2008 11:30 UTC (Thu)
by canatella (subscriber, #6745)
[Link] (4 responses)
Well If I'm running on older hardware, I know that I won't be able to use the fancy new features...
Posted Sep 18, 2008 14:39 UTC (Thu)
by martinfick (subscriber, #4455)
[Link] (3 responses)
Well If I'm running on older hardware, I know that I won't be able to use the fancy new features...
I'll take that answer as a "yes" to my question. Perhaps you do not realize some of the other nifty things that kernels do besides support hardware, especially the linux kernel? :)
In fact, I am embarrassed to say that I probably haven't even touched the tip of the iceberg of non hardware features that someone with an old kernel might want since I am too ignorant. But, surely you should be able to realize that newer kernels in linux mean a lot more than newer hardware support!
Posted Sep 23, 2008 2:10 UTC (Tue)
by unaiur (guest, #3563)
[Link] (2 responses)
Posted Sep 23, 2008 13:57 UTC (Tue)
by martinfick (subscriber, #4455)
[Link] (1 responses)
Posted Jan 12, 2009 10:57 UTC (Mon)
by Blaisorblade (guest, #25465)
[Link]
Except that there are contemporary lightweight distributions, even if sometimes not based on glibc. Indeed, glibc bloat is probably the reason for which new distros are slow. The kernel isn't light either - Matt Mackall has been working on Linux-tiny, but most developers are happy to trade memory for speed, from the point of view of a 486 user, and they are indeed right: by current standards, nobody would say they trade memory for speed so easily :-).
Posted Sep 20, 2008 19:23 UTC (Sat)
by jlokier (guest, #52227)
[Link]
Ancient hardware with a USB port can talk to modern USB devices - if you have the driver which only exists in a modern kernel.
Ancient hardware does new-fangled iptables rules and other IP tricks very nicely. Not fast, but it works.
Even filesystem improvements are good on ancient hardware.
Posted Sep 21, 2008 21:11 UTC (Sun)
by csamuel (✭ supporter ✭, #2624)
[Link]
Posted May 27, 2011 19:13 UTC (Fri)
by smeezekitty (guest, #75235)
[Link]
KS2008: Linux 3.0
KS2008: Linux 3.0
LOL. You are so funny!
KS2008: Linux 3.0
KS2008: Linux 3.0
the quick-and-dirty test program I compiled over the weekend produced a file a.out when I did gcc filename.c, so I would assume that this is still the a.out format.
bfields@pig:~$ cat >test.c
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("hello world\n");
}
bfields@pig:~$ gcc test.c
bfields@pig:~$ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
KS2008: Linux 3.0
...
EOF
KS2008: Linux 3.0
KS2008: Linux 3.0
KS2008: Linux 3.0
echo -en '#include <stdio.h>\nint main(void) { return printf("Hello World\\n"); }\n' | gcc -Wall -xc -
marketing disaster? not so.
i don't really think so. all else failing, it is weird enough to generate some press. maybe some burnt-out microsoft marketing guy will jump on it with the usual uninspired advertisement, but among the informed public and the press it might serve to make a really valid point: janitorial work is valuable, and users profit from it in the medium to long term.
and it also makes another point: open source is (or should be, or can be) about beauty and sound engineering under the hood, not just on the UI layer.
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
"Are you assuming that the only reason people ever upgrade kernels is for new hardware drivers?"
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
Supporting older hardware
current distro on my quad processor PentiumPro box..
KS2008: Linux 3.0
Most of my hardware is old and runs Linux quite well.
Including a 486 66mhz with 12mb ram and a pentium 133mhz with 32 ram.
Why should new features and bug fixes be out of reach because they want to remove drivers that can be configurable at compile time and thus take no space. Also the development time for such a driver is small.