Device driver

A device driver, or software driver is a computer program allowing higher-level computer programs to interact with a computer hardware device.

A driver typically communicates with the device through the computer bus or communications subsystem to which the hardware is connected. When a program invokes a routine in the driver, the driver issues commands to the device, and when the device sends data, the driver invokes routines in the program. Drivers are hardware-dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface.