[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
|
|
Subscribe / Log in / New account

KS2008: Linux 3.0

By Jonathan Corbet
September 16, 2008

LWN's 2008 Kernel Summit coverage
Prior to this year's kernel summit, Alan Cox had suggested a possible topic: devote a development cycle to the removal of old, unused features - possibly breaking compatibility in places - and release the result as Linux 3.0. Alan did not attend the summit itself (the fact that it is being held in the U.S. was enough to ensure that), but his suggested topic was the first order of business. The result: it looks like there is no Linux 3.0 forthcoming right away, and the removal of older features is not on the agenda.

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
KernelDevelopment model


to post comments

KS2008: Linux 3.0

Posted Sep 16, 2008 9:11 UTC (Tue) by nix (subscriber, #2304) [Link] (7 responses)

Does anyone *try* to run binaries from 1991? The last person I heard of running binaries of remotely that age was Alan Cox, and as I understand it he stopped some time ago.

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?)

KS2008: Linux 3.0

Posted Sep 16, 2008 13:34 UTC (Tue) by dlang (guest, #313) [Link] (6 responses)

well, 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.

KS2008: Linux 3.0

Posted Sep 16, 2008 14:40 UTC (Tue) by proski (subscriber, #104) [Link]

LOL. You are so funny!

KS2008: Linux 3.0

Posted Sep 16, 2008 14:42 UTC (Tue) by bfields (subscriber, #19510) [Link] (4 responses)

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

(Woah, I just wrote a whole program with "cat >test.c", I must be 133t!)

KS2008: Linux 3.0

Posted Sep 16, 2008 15:19 UTC (Tue) by nix (subscriber, #2304) [Link] (3 responses)

The real l33t is compiling programs with e.g.

gcc -x c <<'EOF'
...
EOF

:)

KS2008: Linux 3.0

Posted Sep 16, 2008 16:16 UTC (Tue) by jzbiciak (guest, #5246) [Link] (1 responses)

What's this "compile" thing folks keep mentioning? The truly l33t prefer to simply "cat > a.out".

KS2008: Linux 3.0

Posted Sep 16, 2008 20:16 UTC (Tue) by nix (subscriber, #2304) [Link]

Most of us can only *aspire* to be Al Viro.

KS2008: Linux 3.0

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:

echo -en '#include <stdio.h>\nint main(void) { return printf("Hello World\\n"); }\n' | gcc -Wall -xc -

marketing disaster? not so.

Posted Sep 16, 2008 11:38 UTC (Tue) by nettings (subscriber, #429) [Link]

the article quotes christoph hellwig that a feature-removal-only release with a major version number bump would be a "marketing disaster".
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.

of course, that doesn't invalidate the other concerns about a 3.0 as envisioned by alan cox.

Supporting older hardware

Posted Sep 16, 2008 11:51 UTC (Tue) by Cato (guest, #7643) [Link] (14 responses)

I agree with Linus's point about older hardware - schools, charities, developing countries can really make use of older hardware with modern distros like SliTaz, Ubuntulite, Puppy, etc.

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.

Supporting older hardware

Posted Sep 17, 2008 8:04 UTC (Wed) by spaetz (guest, #32870) [Link] (13 responses)

but what's wrong with using an equally ancient kernel for this hardware?

Supporting older hardware

Posted Sep 17, 2008 11:06 UTC (Wed) by dgm (subscriber, #49227) [Link] (4 responses)

Bugs obviously. Specially security ones.

Supporting older hardware

Posted Sep 17, 2008 11:56 UTC (Wed) by NAR (subscriber, #1313) [Link] (1 responses)

Only if you think that the newer kernels do not have security bugs, which seems not to be the case. On the other hand, contemporary crackers, script kiddies might look for only newer bugs and miss the old ones.

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.

Supporting older hardware

Posted Sep 18, 2008 6:57 UTC (Thu) by dlang (guest, #313) [Link]

new kernels may have new bugs, but they also fix a lot of old bugs.

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)

Supporting older hardware

Posted Sep 17, 2008 12:02 UTC (Wed) by spaetz (guest, #32870) [Link] (1 responses)

Last I looked, 2.4.36.7 was only released recently. Many of the current security bugs have only been introduced in the 2.6 series, so some people even prefer the stable and tried 2.4 for security reasons. If you want to use your 80286, it might be fully sufficient.

Supporting older hardware

Posted Sep 17, 2008 14:21 UTC (Wed) by xoddam (guest, #2322) [Link]

> If you want to use your 80286, it [2.4] might be fully sufficient.

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.

Supporting older hardware

Posted Sep 17, 2008 14:46 UTC (Wed) by martinfick (subscriber, #4455) [Link] (5 responses)

That seems like a silly question: the same thing that's wrong with an ancient kernel for recent hardware! The lack of all the new features!

Are you assuming that the only reason people ever upgrade kernels is for new hardware drivers?

Supporting older hardware

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...

Man, I'm forced to run on an 2.2 kernel. It's a pity, I don't even have usb hotplug support... Wait, I don't have usb on my 133Mhz pentium!

Supporting older hardware

Posted Sep 18, 2008 14:39 UTC (Thu) by martinfick (subscriber, #4455) [Link] (3 responses)

"Are you assuming that the only reason people ever upgrade kernels is for new hardware drivers?"

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? :)

If I have old hardware, do you think I do not want?:
  • New advanced more robust filesystems (ext3/4, xfs, jfs, reiserfs, fuse, unionfs, brtfs, glusterfs...)
  • New networking protocol support, iptables...
  • Security fixes/new security models (SELinux, apparmor...)
  • Improved schedulers, i/o, process, elevators...
  • Improved block management features, lvm2, drbd, nbd, iscsi...
  • Performance improvements (futexs, pipe io, select/poll........)
  • Real time improvements, low latency...
  • Containerazation support
  • User api improvements .......
  • General bug fixes ......

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!

Supporting older hardware

Posted Sep 23, 2008 2:10 UTC (Tue) by unaiur (guest, #3563) [Link] (2 responses)

Do you have tried all those fancy features in a 66Mhz 80486? Fedora doesn't boot up. RedHat Linux 9.0 is ssssslllllooooowwww. The best mainstream OS for that machine is a RedHat 7.2 based on 2.4.x kernel. Period.

Supporting older hardware

Posted Sep 23, 2008 13:57 UTC (Tue) by martinfick (subscriber, #4455) [Link] (1 responses)

Hmm, isn't that the whole point of the discussion, whether an effort should be made to support older hardware or not? Your argument is a little bit circular, "it doesn't work, therefore, do not make it work"?

Supporting older hardware

Posted Jan 12, 2009 10:57 UTC (Mon) by Blaisorblade (guest, #25465) [Link]

The point is not circular. It is "it does not work and nobody with development skills care enough, so don't make it work".

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 :-).

Supporting older hardware

Posted Sep 20, 2008 19:23 UTC (Sat) by jlokier (guest, #52227) [Link]

Features and drivers come in handy.

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.

Supporting older hardware

Posted Sep 21, 2008 21:11 UTC (Sun) by csamuel (✭ supporter ✭, #2624) [Link]

Because you are then tied into running an equally old distro, and I want to be able to run a
current distro on my quad processor PentiumPro box..

KS2008: Linux 3.0

Posted May 27, 2011 19:13 UTC (Fri) by smeezekitty (guest, #75235) [Link]

I would also agree with Linus on keeping old drivers.
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.


Copyright © 2008, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds