Device driver
is software that enables the operating system.
The device can be used.
A driver typically communicates with the device through the computer bus or
communications subsystem to which the hardware connects. When a calling program
invokes a routine in the driver,
the driver issues commands to the device. Once the device sends data back to the
driver, the driver may invoke routines in the original calling program. Drivers
are hardware-dependent and operating-system-specific. They usually
provide the interrupt handling
required for any necessary asynchronous time-dependent hardware interface.