This chapter discusses I/O systems and covers several topics:
1) I/O hardware components like ports, buses, controllers, and device addresses.
2) Application I/O interfaces that abstract device characteristics for programmers.
3) The kernel I/O subsystem that includes device drivers to hide controller differences.
4) Methods for transforming I/O requests to hardware operations like polling, interrupts, and direct memory access.
5) Performance considerations and notes about interrupt schemes and DMA.