|
|
The Uniform Driver Interface (UDI) is an operating system-neutral device driver standard. It defines a relatively autonomous, low-level I/O subsystem that completely surrounds conforming device driver modules, providing them with a consistent interface to and from the host operating system and among cooperating device drivers.
A device driver is a collection of routines that associate the generic I/O functionality provided by an operating system with specific I/O hardware. The writing of device drivers accounts for a large portion of the engineering effort needed to create or port an operating system or I/O card product to a new platform or interconnect. When an I/O card is designed for a common interconnect such as PCI, new or modified device drivers may be required for each platform operating system combination. This can multiply by manyfold the time and expense of developing and supporting a device. Standard, open, driver-interface definitions are a key ingredient in leveraging third-party driver development.
The UDI specification allows a single device driver to support an I/O card across the platforms and operating systems appropriate for its interconnect. The goal is to accelerate the availability, and lower the costs, of I/O solutions, increasing the competitiveness of supporting systems.
Great care has been taken to isolate drivers from the impedance matching required for an I/O card to perform well on a given operating system or platform. The driver is always invoked by procedure calls and interacts with the embedding operating system and hardware via environment calls, providing the driver with full isolation from the details of its environment while retaining sufficient flexibility and performance in the operating system.