A device driver is a software program that controls a particular type of hardware device that is attached to a computer. When buying an operating system, many device drivers are built into the product. However, if a user later buys a new type of device that the operating system did not anticipate, the new device driver will have to be installed. A device driver essentially allows smooth communication between a connected hardware device and the operating system (OS).
Types of device drivers
Device drivers can generally be categorized as kernel device drivers or user device drivers. Kernel device drivers load with the OS as part of the system's memory. This is done so the device driver can be activated as soon as it is needed. However, kernel device drivers are loaded into the systems RAM, meaning there can only be a limited amount of device drivers running at one time before system performance begins to be impacted.
User mode device drivers provide a dedicated API at a user level to interrupt memory management, avoiding the problems found in kernel device drivers. User mode device drivers are triggered by the end-user. If there is an error, this type of driver can restart without affecting the rest of the system and is useful for USB devices.
Some Windows programs are virtual device drivers that interface with the Windows Virtual Machine Manager. There is a virtual device driver for each main hardware device in the system, including the serial and parallel ports, hard disk drive controller and keyboard. They are used to maintain the status of a hardware device that has changeable settings and to emulate a hardware device in virtualization environments. Virtual device drivers handle software interrupts from the system rather than hardware interrupts.
In Windows operating systems, a device driver file usually has a file name suffix of DLL or EXE. A virtual device driver usually has the suffix of