|
|
Collection of driver
Writing a device driver requires an in-depth
understanding of how the hardware and the software of a given platform
function. Drivers operate in a highly privileged environment and can cause
disaster if they get things wrong.[2] In contrast, most user-level software
on modern operating systems can be stopped without greatly affecting the
rest of the system. Even drivers executing in user mode can crash a system
if the device is erroneously programmed. These factors make it more
difficult and dangerous to diagnose problems.
Thus drivers are usually written by software engineers who come from the
companies that develop the hardware. This is because they have better
information than most outsiders about the design of their hardware.
Moreover, it was traditionally considered in the hardware manufacturer's
interest to guarantee that their clients can use their hardware in an
optimum way. Typically, the logical device driver (LDD) is written by the
operating system vendor, while the physical device driver (PDD) is
implemented by the device vendor. But in recent years non-vendors have
written numerous device drivers, mainly for use with free operating systems.
In such cases, it is important that the hardware manufacturer provides
information on how the device communicates. Although this information can
instead be learned by reverse engineering, this is much more difficult with
hardware than it is with software.
Microsoft has attempted to reduce system instability due to poorly written
device drivers by creating a new framework for driver development, called
Windows Driver Foundation (WDF). This includes User-Mode Driver Framework (UMDF)
that encourages development of certain types of drivers - primarily those
that implement a message-based protocol for communicating with their devices
- as user mode drivers. If such drivers malfunction, they do not cause
system instability. The Kernel-Mode Driver Framework (KMDF) model continues
to allow development of kernel-mode device drivers, but attempts to provide
standard implementations of functions that are well known to cause problems,
including cancellation of I/O operations, power management, and plug and
play device support.
Apple has an open-source framework for developing drivers on Mac OS X called
the I/O Kit.
|
|
Driver/Software Download
Ringtones
|

|