Messages in this thread | | | Date | Tue, 21 Sep 1999 18:46:36 -0400 | From | "Theodore Y. Ts'o" <> | Subject | Re: [Q]: Linux and real device drivers |
| |
Date: Tue, 21 Sep 1999 15:00:04 +0200 (CEST) From: Jos Hulzink <josh@stack.nl>
My question is: Is there someone working on real device driver support for Linux i.e. separated from the kernel ? Is there a mailing list on this topic, or has an important decision been taken on this in the past ?
If not, is anyone willing to discuss things with me on this subject ? Maybe we can come towards a proposal to implement it.
I wrote a paper on this very subject at this year's Linux Expo. And such drivers do exist. For example, the PCMCIA driver is one example; so is the Rocketport driver, which I wrote for Comtrol, Inc. Another example is the serial driver, which is available in a standalone form so that poeple can use the features of the latest serial driver without being forced to upgrade to Linux 2.3. You can get the stand-alone driver here:
http://web.mit.edu/tytso/www/linux/serial/
The Linux Expo paper describes some of the techniques which I used to make this stand-alone driver, and some of the short comings of such a technique. The paper also argues why I believe this will be more important in the future.
Although I know a number of people disagree with me, I believe that stand-alone device drivers are very important for scaling reasons. There are lots of hardware manufacutrers, and one of the reasons why Windows has a large strategic advantage over Linux is that you can buy a scanner, or a plotter, or a network card, and know that the manufacturer has included drivers for Windows, so you know that you'll be able to use it. This is because manufacturers feel that they have to supply device drivers for Windows, or no one will buy their product.
Hopefully, this will be true of Linux as well, but if manufacturers don't have a way to get a driver into the Linux kernel, what will they do? Remember, in many cases the product lifecycle is far faster than it takes for us to put out a new stable kernel release. (One of the big advantages with XFree86 supporting loadable shared objects is so they will be able to support new hardware cards without having to turn the release crank and make everyone wait for a new stable XFree86 release before the latest video cards are supported.)
All of this being said, I don't believe that UDI is the right approach. The indirection and "impedance mismatches" caused by different interfaces will likely cause very big performance problems for high-speed devices. It may be OK for slower devices like scanners, though; time will tell. For many devices, though, using the native Linux interfaces is the right way to go, and the only question is how to do this in a manner which makes them independent from the kernel. It can be done.
- Ted
- 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/
| |