Windows uses a set of separate programs called device drivers to convert between the generic inputs and outputs in the BIOS and the specific set of input and output signals used by devices (such as a keyboard, a printer, or a disk drive) connected to the computer. By treating device drivers as separate files and not incorporating them in the core operating system, Microsoft has allowed the designers of new peripheral devices to make them compatible with Windows by creating a new device driver.
Each device driver provides an interface that converts the commands used by a device into the generic instructions that the operating system can understand. The device driver also converts generic output signals from the operating system into specific data and controls. In other words, a device driver for a keyboard would accept keystrokes, but a voice-command device for users who can't manipulate a keyboard might accept instructions through a microphone. Both device drivers would send the same commands to the operating system. Figure 5.8 shows how these two device drivers look the same to Windows.
Figure 5.8: Both of these device drivers present identical instructions to the operating system.
Device drivers also provide information about how the operating system communicates with the device (through a serial or parallel port, a USB port, or some other physical connection). They also communicate how the operating system should handle memory management and timing in relation to this device. Many device drivers also include a configuration utility that sets one or more options related to the performance of the device. For example, the control program for the keyboard includes options for different keyboard layouts used with different languages.
When you install a new peripheral device in your computer, you must also load the corresponding device driver. Chapter 31 contains detailed instructions for finding and installing device drivers.
In Windows and other complex operating systems, device drivers take over control of peripherals from the BIOS. When that happens, the device driver adds more features and options to the basic set supported by the BIOS, and it allows the device to work directly with other parts of the operating system.