A fundamental problem in computer design is the control of devices such as disk drives and printers. Each device is designed to respond to a particular set of control com-mands sent as patterns of binary values through the port to which the device is connected. For example, a printer will respond to a “new page” command by skipping lines to the end of the current page and moving the print head to the start of the next page, taking margin settings into account. The problem is this: When an applications pro-gram such as a word processor needs to print a document, how should the necessary commands be provided to the printer? If every application program has to include the appropriate set of commands for each device that might be in use, programs will be bloated and much development effort will be required for supporting devices rather than extending the functionality of the product itself. Instead, the manufacturers of printers and other devices such as scanners and graphics tablets typically provide a program called a driver. (A version of the driver is created for each major operating system in use.) The driver serves as the intermediary between the application, the operating system and the low-level device control system. It is sometimes useful to have drivers in the form of continually running programs that monitor the status of a device and wait for commands (see demon).
Modern operating systems such as Microsoft Windows typically take responsibility for services such as printing documents. When a printer is installed, its driver program is also installed in Windows. When the application pro-gram requests to print a document, Windows’s print system accesses the driver. The driver turns the operating system’s “generic” commands into the specific hardware control commands needed for the device.
While the use of drivers simplifies things for both pro-gram developers and users, there remains the need for users to occasionally update drivers because of an upgrade either in the operating system or in the support for device capa-bilities. Both Windows and the Macintosh operating system implement a feature called plug and play. This allows for a newly installed device to be automatically detected by the system and the appropriate driver loaded into the operat-ing system (see plug and play). Other device management components enable the OS to keep track of the driver ver-sion associated with each device. Some of the newest operat-ing systems include auto-update features that can search on the Web for the latest driver versions and download them.
The need to provide drivers for popular devices creates something of a barrier to the development of new operating systems. In a catch-22, device manufacturers are unlikely to support a new OS that lacks significant market share, while the lack of device support in turn will discourage users from adopting the new OS. (Users of the Linux operat-ing system faced this problem. However, that system’s open source and cooperative development system made it easier for enthusiasts to write and distribute drivers without wait-ing for manufacturers to do so.)
No comments:
Post a Comment