Device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device. This tag should only be used for questions related to driver development, as questions about finding or installing drivers are off-topic for Stack Overflow.
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.
A device driver simplifies programming by acting as translator between a hardware device and the applications or operating systems that use it. Programmers can write the higher-level application code independently of whatever specific hardware device.
https://en.wikipedia.org/wiki/Device_driver
This tag should only be used for questions related to driver development, as questions about finding or installing drivers are off-topic for StackOverflow. Assistance with identifying, locating, and installing drivers may be obtained at SuperUser, Unix & Linux Exchange or in the case of server-related and enterprise-level hardware, ServerFault.