[lkml]   [2001]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Loadable drivers [was SMP/cc Cluster description ]
    Date writes:
    > MS with Windows (and even DOS) went the right direction here. In fact,
    > they have been hurting themselves by what lack of driver interoperability
    > there is even between Windows NT/2K/XP. Admittedly they didn't have much
    > of a choice with their closed-source scheme, but it still is a better
    > solution from a usability and stability point of view in general.

    I remember some quote from a Microsoft manager when they released Win2k.
    (paraphrased) "A significant percentage of the blue screens in NT4 were
    caused by buggy third party drivers." (and then how they will try to avoid
    it in the future by having more stringent windows logo tests etc.

    The experience in recemt Linux is basically similar. Single Linux has
    gained vendor support in drivers it has gotten a lot more unstable
    than it used to be (sad but true). There are first a lot more and more
    complex drivers than there used to be. A lot of drivers both writen
    by individuals and also companies for their are simply crappy buggy
    code. I could give you numerous examples here; names withheld to
    protect the guilty. For hardware companies it might be because driver
    writing is not a profit center, but a cost. There might be other
    reasons. There are just a lot of bad drivers around.

    [This is not a general insult on driver writers; there are some very well
    written drivers, but also unfortunately a lot of bad ones.]

    Now when a driver crashes guess who is blamed? Not the driver author
    but the Linux kernel is seen as unstable and it effectively is as
    a end result - it doesn't work for the user. All just because of bad drivers.

    The solution that is tried in Linux land to avoid the "buggy drivers" ->
    "linux going to windows levels of stability" trap is to keep drivers in tree
    and aggressively auditing them; trying to fix their bugs.

    A lot of driver code is actually cut'n'pasted or based
    on other driver code (or you can say they often use common design patterns)
    Now when a bug/race/.. is found and fixed in one driver having the majority
    of drivers in tree makes it actually possible to fix the bug who is likely
    in other drivers who use similar code there too. With having drivers in external
    trees that crashing/angry user/debugging/etc. would likely need to be done once
    per driver; overall causing much more pain for everybody.

    Your scheme would make this strategy of tight quality control of
    drivers much harder, and I think it wouldn't do good to the long term
    stability of linux.

    There are other reasons why linux has really no stable driver interface.
    Sometimes it is just needed to break drivers to fix some bugs cleanly.
    Getting rid of this possibility (fixing bugs cleanly even if it requires
    changes in other kernel code) would also cause more bugs in the long term.


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:13    [W:0.025 / U:469.036 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site