A program, or part of a program, used to control the detailed operation of an input or output device connected to a computer system. In many cases the device drivers are embedded as part of the operating system, and different device drivers are written to conform to an agreed set of standards governing the way in which the user's application program communicates with the device driver. This allows programs to be written in such a way as to be able to use any device for which a suitable device driver has been produced. The inclusion of the appropriate device drivers may take place when the operating system for a particular configuration is being generated. Alternatively when the system is first started it may determine what devices are connected, and incorporate the corresponding device drivers. In some cases this approach is taken even further, and attaching a new device will cause the system to locate and include the corresponding device drivers. See also plug-and-play.