Messages in this thread | | | Date | Wed, 22 Sep 1999 12:29:26 -0700 | From | David Hinds <> | Subject | Re: [Q]: Linux and real device drivers |
| |
> However I still think that drivers residing in the kernel tree is the > right way to go, it is such a pain maintenance wise having to deal > with modules coming from the outside - PCMCIA is a perfect example of > this.
Whether it is a pain maintenance-wise depends very much on what you need to do. I think the vast majority of users would be much happier to be able to get new drivers and driver updates without having to upgrade their kernel to the latest and greatest (which is usually a development kernel, not a stable release, and which may require upgrading a variety of user-level tools). On the other hand, standalone driver distributions are inconvenient for people who want to follow the latest kernel developments.
As the PCMCIA maintainer, I can tell you that for every person I hear complain about PCMCIA not being in the kernel tree, I've probably had several hundred support issues that have been resolved by PCMCIA (and not kernel) upgrades.
It is easier to maintain unmaintained drivers when they are in the kernel tree. That is, if a driver doesn't have an active maintainer, the only way it will be kept up to date with respect to kernel API changes is if it is in the kernel tree and can be updated by the usual global find-and-replace style of update. For drivers that are under active development and have active maintainers, I know that people like me, Donald Becker, and probably others, find this style of "maintenance" very frustrating. Active driver development requires that an author maintain their own source tree independent of what is in the kernel (whether it can actually be built standalone or not is a separate issue). The current big-kernel-tarball approach encourages kernel API drift (since some developers are indifferent or oblivious to the impact of changes on things that are not in the kernel tree) and version skew between what is in the kernel tree and what is in our driver development trees.
The strategy of putting all device drivers in the kernel tree is fundamentally unscalable. It has been adequate until now, but with the exponential proliferation of device drivers we've seen, the time will come, I'd guess in the next two years or so, when people will realize that this just won't work any more. No one is going to want to hand propagate kernel API changes through 1000 (or 5000) device drivers in the kernel tree just to get a clean build, or even to wade through that many kernel config options to find the ones they want. Device manufacturers are going to start distributing Linux drivers (they already have started), and this is also going to perturb the current driver maintainer model.
-- Dave Hinds
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |