Device Driver

Device drivers communicate directly with the hardware, typically by writing values to memory locations and/or registers and handling interrupts. Device drivers are typically called by both the operating system and application software as needed. Depending upon the operating system, device drivers can be managed by the operating system or considered part of the operating system. Device drivers are usually both hardware specific and operating system specific.

From the perspective of the programmer writing a device driver, the driver itself can be considered a piece of application software, as it may be delivered for some End Use having operational relevance unknown to the programmer at the time of its creation.

In some OS’, the collection of executable software performing this class of function is referred to as a “Hardware Abstraction Layer” (HAL). An interesting counter-example is certain high-end imaging software, for which the Application Software is compiled specific to individual scanner models.