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.