In computing, a device driver is a
computer program that operates or controls a particular type of device that is attached to a computer.
 A driver provides a
software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details of the hardware being used.
A driver 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.