Input/Output in Operating Systems
operating systems hide details of input/output
input/output software is organized in a series of layers
lower layers hide the peculiarities of hardware
upper layers present a clean, regular interface