In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device.
Drivers provide an interface between low level hardware (mouse, keyboard, printer, etc.) and the application software that uses them. Drivers normally operate within the operating system kernel, which is a protected area of the system.
Drivers are hardware-dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface.
Poorly written drivers can cause full system crashes more readily than regular applications, since they have access to very important and sometimes complex parts of the system.