Driver ( eng. Driver , plural drivers [1] ) - computer software with which other software ( operating system ) gets access to the hardware of a device. Typically, operating systems ship with drivers for key hardware components that the system cannot work without. However, some devices (such as a video card or printer ) may require special drivers, usually provided by the device manufacturer.
In general, a driver is not required to interact with hardware devices; it can only simulate them (for example, a printer driver that writes output from programs to a file), provide software services that are not related to device management (for example, / dev / zero on Unix , which only produces null bytes), or do nothing (e.g. / dev / null on Unix and NUL on DOS / Windows ).
Content
Driver Approach
The operating system manages some “virtual device” that understands the standard set of commands. The driver translates these commands into commands that the device understands directly. This ideology is called hardware abstraction. For the first time in domestic computer technology, such an approach appeared in a series of EC computers , and this kind of control software was called channel software.
A driver consists of several functions that handle certain operating system events. Usually these are 7 main events:
- Download driver. Here the driver registers in the system, performs initial initialization, etc.
- Unloading. The driver frees the captured resources - memory, files, devices, etc.
- Opening the driver. The beginning of the main work. Typically, a driver is opened by a program as a file, by
fopen()on UNIX-like systems, orCreateFile()on Win32 . - Read / Write: the program reads or writes data from / to the device serviced by the driver.
- Closing: the operation, the opposite of opening, frees up the resources occupied at opening and destroys the file descriptor.
- I / O control ( IO Control, IOCTL ). Often, the driver supports an I / O interface specific to the device. Using this interface, the program can send a special command that this device supports. For example, for SCSI devices, you can send the GET_INQUIRY command to get a description of the device. In Win32-based systems, control is carried out through the
DeviceIoControl()API function, in UNIX-like ones - usingioctl().
Video Drivers
- Open Source Video Card Drivers
Driver Integration
With the development of systems that combine on one board not only the central elements of the computer, but also the majority of computer devices as a whole, the question arose of the convenience of supporting such systems, called the “ hardware platform ”, or simply “platform”.
At first, platform manufacturers supplied a set of separate drivers for operating systems, assembled on a single medium (usually a CD ), then installation packages called 4-in-1 and One touch appeared, which made it easier to install drivers on the system. At the same time, as a rule, you can choose either fully automatic installation of all drivers, or manually select the necessary ones. However, there was no single, settled term for a long time.
The modern term is the Board Support Package (or “platform support package”), which describes such sets of device drivers. In addition to the drivers themselves, it can, like other installation packages, contain modules of the operating system and programs.
Virtual Drivers
Virtual device drivers are a special version of drivers. They are used to emulate a hardware device, especially in virtualization environments, for example, when the DOS program runs on a computer running Microsoft Windows or when the guest operating system is running on Xen hosting .
See also
- Kernel module
- DDK
- DriverPack Solution
Notes
- ↑ The driver option is conversational and professional. Discussion on Gramota.ru . Archived November 8, 2011 on Wayback Machine
Links
- Writing OpenSolaris drivers (rus.) - article on drivers in OpenSolaris
- klife - Introduction to Linux Device Drivers
- Solaris Device Drivers (link not available)