Re: [Q]: Linux and real device drivers

Theodore Y. Ts'o (tytso@mit.edu)
Tue, 21 Sep 1999 18:46:36 -0400


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/