I/O Hardware

Since handling I/O is a fundamental goal for an operating system, OS kernels are frequently developed with I/O subsystems within them. An I/O subsystem is, on the one hand, the collection of kernel services provided for I/O operations, and, on the other hand, the hardware used for I/O (busses, controllers, drives, and I/O devices.)

An I/O subsystem needs to take two apparently conflicting trends in technology into account:

  1. The strive towards a unified interface for all the connected devices, regardless of how differently they operate. When using a standardized interface, an operating system facilitates the integration of new devices into the system.
  2. The great variety in I/O devices, and the integration of devices with new technologies.

To achieve a uniform interface between the OS and I/O devices, the OS uses device drivers, each of which is software that provides access to and manages I/O on these devices.