Re: A universal device driver library?
From: Jonathan Neve (jonathan_at_microtec.fr)
Date: 08/14/04
- Next message: Otto Wyss: "Different behaviour of euqually secured devices"
- Previous message: Ralf Render: "Re: cardbus interrupt latency"
- In reply to: Lew Pitcher: "Re: A universal device driver library?"
- Next in thread: P.T. Breuer: "Re: A universal device driver library?"
- Reply: P.T. Breuer: "Re: A universal device driver library?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 13 Aug 2004 22:26:56 -0700
Lew Pitcher <Lew.Pitcher@td.com> wrote in message
> Jonathan Neve wrote:
> > Hi all!
> >
> > I've been thinking, wouldn't it be possible to create a standard
> > device driver library, that would allow device drivers to be written
> > in a portable way for all OSs?
>
> The short answer is "No".
> The slightly longer answer is "No, but it can be done for a limited
> subset of operating systems on a restricted hardware platform"
>
> > I realise of course, that there are
> > significant differences in the way each OS handles its devices.
> > Nevertheless, the role of a device driver is always basically the
> > same: provide low-level communication with a certain device, while
> > interacting in a simple way with the OS.
>
> There are two key points here:
> 1) a device driver provides /low_level/ communications with hardware
> and low_level communications is specifically hardware dependant and
> not just on the hardware you are trying to drive. It depends on
> intimate knowledge of things like the I/O mechanisms provided by the
> CPU (which can differ radically, depending on the platform), the
> hardware implementation of the connections (ISA vs PCI vs CARDBUS vs
> VMEBUS vs IEEE696 vs etc) and the capabilities of the equipment.
I see. But why couldn't a high-level abstraction be made that would
cover up the differences? That is, for each OS/hardware platform, we
would have to make a specific implementation, but the driver itself
wouldn't have to interact in a direct way with the hardware (other of
course than the hardware it's trying to drive). Let's say we're trying
to write a driver for a USB flash disk for example: why would the
driver itself need to do anything specific to the platform it's
running on? Wouldn't it merely have to know how to interact with the
disk itself? And if the platform-specific details involved in reaching
the device (the hardware bus type, and other such things, as you
mentionned) are abstracted, what would be the problem?
> 2) Not all operating systems communicate with their low level drivers in
> the same manner.
Naturally, but there again, I think it ought to be possible to
abstract this. We would have to have a higher-level API that would
hide the details.
Jonathan Neve.
- Next message: Otto Wyss: "Different behaviour of euqually secured devices"
- Previous message: Ralf Render: "Re: cardbus interrupt latency"
- In reply to: Lew Pitcher: "Re: A universal device driver library?"
- Next in thread: P.T. Breuer: "Re: A universal device driver library?"
- Reply: P.T. Breuer: "Re: A universal device driver library?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|