Linked by Thom Holwerda on Sat 6th May 2006 17:26 UTC, submitted by JMcCarthy
Linux Andrew Morton, the lead maintainer of the Linux production kernel, is worried that an increasing number of defects are appearing in the 2.6 kernel and is considering drastic action to resolve it. "I believe the 2.6 kernel is slowly getting buggier. It seems we're adding bugs at a higher rate than we're fixing them," Morton said, in a talk at the LinuxTag conference in Wiesbaden, Germany, on Friday.
Permalink for comment 121839
To read all comments associated with this story, please click here.
RE[3]: Million times
by Brendan on Sun 7th May 2006 08:16 UTC in reply to "RE[2]: Million times"
Brendan
Member since:
2005-11-16

Also, lets just say tomorrow Linus comes out and announces a brand new stable API - the problem won't go away as each distribution is compiled with a different compiler, incompatbility between compilers also exists as well.

Are you sure about this? How many times have you changed your kernel configuration and found that most of your applications are broken?

All sane "API specifications" include calling conventions. That's why your applications don't break when you modify the kernel, and that's why all compilers can support the stable API.

There's only 2 "valid" problems with creating a stable API for device drivers. The first problem is the GPL/open source mentality, where it's not "fashionable" to allow other peoples work to be closed source. The second problem is backwards compatibility, which can be solved in a number of ways.

The normal way to solve the backward compatability problem is to have "OS versions", where the API can change between versions. For example, "Linux 2.9.x" could use "driver API version 2.9", while "Linux 2.10.x" could use a (possibly completely different) "driver API version 2.10". In addition, "Linux 2.10.x" could also support the old "driver API version 2.9" (but this old API could be dropped in "Linux 2.11.x", which limits the amount of backwards compatibility). This is how Microsoft do it (although they only release a "new version" every 8 years or something).

Another way would be to allow new API functions to be added at any time, and allow old API functions to be removed after a warning period - a device driver that works now might generate "API function 0x1234 is deprecated" warnings for 12 months and then might stop working after that.

The last way would be to ditch the buggy "mega-beast" and switch to a micro-kernel (there was an article about this)... :-)

Reply Parent Score: 2