The path between the operating system and virtually all hardware not on the computer’s motherboard goes through
a special program called a driver.
Driver’s function:
To be the translator between the electrical signals of the hardware subsystems and
the high-level programming languages of the operating system and application programs.
Drivers take data that the operating system has defined as a file and translate them into streams of bits places
in specific locations on storage devices, or a series of laser pulses in a printer.
Managing input and output is largely a matter of managing queues a buffers, special storage facilities that take a stream
of bits from device, perhaps a keyboard or a serial port, hold those bits, and release them to the CPU at a rate slow enough
for the CPU to cope with.
Managing all the resources of the computer system is a large part
of the operating system’s function and, in the case of real-time operating systems, may be virtually all the functionality
required. For other operating systems, though, providing a relatively simple, consistent way for applications, and humans
to use the power of the hardware is a crucial of their reason for existing.