Uniform Driver Interface

http://www.projectudi.org/

The Uniform Driver Interface is a proposed standard for portable device drivers, such that drivers designed to the UDI protocol could be used in any UDI-compliant operating system. While several major players in the field have made gestures of support since it was first proposed in 1993, as of Sept 2004 only SCO has released an implementation of it.

How does this differ from OpenBoot and OpenFirmware?

The difference between UDI and OpenFirmware is precisely the same dichotomy as the differences between COM and CORBA.

UDI provides a binary interface standard between the driver and host OS. UDI requires binary device drivers, to be dynamically loaded by a loader/linker. UDI provides an API mapping on a per-architecture, not per OS, basis. Thus, a UDI driver compiled under Linux will work under Windows and vice versa, without the need to recompile. Drivers typically are included as pre-compiled binary modules or distributed as source code (as with Linux drivers today). However, the APIs to which these modules compile against are standardized in the UDI API documentation. Drivers often exist in the CeeLanguage, compiled using the host's native C compiler.

OpenFirmware provides a language-based interface (in this case, a domain-specific implementation of ANSI ForthLanguage). Drivers written to support OpenFirmware exists as a highly compressed form of source code, which the OpenFirmware interpreter evaluates upon detecting the peripheral. Evaluation of this source often results in compiled software (as interpreting the : word in Forth kicks off the compiler, and nearly any non-trivial Forth application or driver consists of many so-named colon-definitions.). Being a language-based solution to the problem of portable drivers, OpenFirmware finds itself both OS and architecture independent. Because of this, OpenFirmware drivers often reside in a ROM on the peripheral itself, offering true plug-and-play experience. Drivers may also be disk-loaded as well, often providing bug-fixes or greater functionality which wouldn't normally fit in ROM.


EditText of this page (last edited November 6, 2008) or FindPage with title or text search