Device driver is usually called driver for short. Generally speaking, driver is a more popular name among people. In computing, it refers to a computer program which operates or controls a particular type of device which is attached to the computer. As a matter of fact, a driver provides a software interface to hardware devices, which enables the operating system and other computer programs to have access to hardware functions even without needing to know the hardware being used in great details.
Typically, a driver can only communicate with the device through the computer bus or communications subsystem connected to the hardware. If the routine located in the driver is invoked by a calling program, then the driver will issue commands to the device immediately. As long as the device sends the received data back to the driver, the routines in the original calling program are likely to be invoked as well. As a matter of fact, drivers are hardware-dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface. Therefore, it is safe to say that drivers are of vital significance in computing.
Device drivers act as translators working between a hardware device and the applications or operating systems using it, which can effectively simplify programming. Moreover, programmers can write the higher-level application code regardless of the specific type of hardware being used.
For instance, a high-level application for interlacing can be rather simple. It may have only two simple functions, namely, “send data” and “receive data”. However, it is able to interact with a serial port. In comparison, a device driver at a lower level may only be able to communicate with a particular serial port controller installed on a user’s computer even though it has implemented these functions as well.