Subject: Re: got drivers?
To: None <netbsd@sopwith.solgatos.com>
From: Seth Kurtzberg <seth@cql.com>
List: tech-misc
Date: 01/24/2005 17:53:48
It would certainly be interesting to develop a device driver interface
layer that allows drivers from other operating systems to become virtual
NetBSD drivers. In principle this shouldn't be difficult, but this is
certainly one of those instances where the devil would be in the
details. (If there is already something of this sort in the works, and
I missed it, then my apologies; I did check the list archives but that
is not to say I didn't miss something.)
My view is that, if something like this is to be attempted, it should be
part of a general capability which allows the addition of libraries that
act like "plug-ins" for a given O/S device driver interface. The place
to start (again IMO) is an analysis and comparison of the currently
available open source device driver interfaces; Dieter's list
(Free/OpenBSD, and Linux) should certainly be part of this. If there
are others that should be considered in such an effort, I'm sure people
on the list will provide that information.
I have a reasonably good working knowledge of the device driver
interface for Linux and for NetBSD, so I'd be willing to be part of an
effort to design a workable abstraction layer which would define the
requirements for a "plug-in". (I'm using the quotes around plug-in
because the mechanism would be quite different, and I'm just sketching
out a very high level suggestion which may turn out to be flawed.)
That's assuming, of course, that there is a consensus that such an
effort would be valuable. It should be considered that such a
capability has the potential to reduce NetBSD stability, because the
quality of device drivers (in Linux particularly) varies from very good
to almost useless. Even if NetBSD were to designate specific drivers as
stable, nothing would stop users from using other, less stable drivers.
As I'm sure nobody wants to encourage something that might reflect badly
on NetBSD as a whole, the stability issue should be carefully considered.
One thing that might make this less risky is that my non-technical
business type users think the NetBSD machines are Linux machines. So
they might just get the impression in Linux is not stable. :)
You could build into an abstraction layer of this type either a fixed
(updatable) list of allowable drivers, or you could have a site with a
dynamic list of acceptable drivers that the abstraction layer consults
before allowing a driver to be used. This sounds good, but it means
that somebody (or somebodies) would have to spend significant amounts of
time judging the stability of drivers, which means of course that they
probably need to have the hardware associated with the driver.
It also won't do to just go by the version number and the driver
classification assigned by the other operating system (new,
experimental, stable, etc.) I'm running a pre-release version of
drivers for Atheros 802.11g hardware, that is working perfectly although
its revision is < 0.5. Other drivers with revision numbers indicating
that they are stable and released are, in fact, not stable (ATI drivers,
for example).
Anyway, comments on the merit and practicality of such a thing will be
interesting.
Seth Kurtzberg
seth@cql.com
Dieter wrote:
>Having used NetBSD for many years now, the biggest problem I see
>with NetBSD is device drivers.
>
>Can't talk to this device, no driver. Can't talk to that device,
>no driver.
>
>Even if there is a driver it is frequently buggy. About the only thing
>that works reliably is SCSI. Even a common ATA disk creates problems
>for seemingly unrelated devices.
>
>What would it take to create an interface that allowed linking
>in drivers from FreeBSD/OpenBSD/Linux/... ?
>
>!DSPAM:41f15891193137884015205!
>
>
>