This document discusses operating system I/O systems. It covers I/O hardware including devices, ports, buses and controllers. It describes how operating systems manage I/O through techniques like interrupts, DMA, blocking/non-blocking I/O, buffering and caching. The kernel I/O subsystem handles requests, scheduling, error handling and protection. Interfaces like STREAMS provide communication between processes and devices. I/O performance is important to overall system performance.