Application I/O Interface

I/O devices, besides being labeled as either 'input' or 'output', can subsequently be divided into a few additional categories (which we review in the next few slides) based on the device's performance and capabilities.

Many operating systems have a function or system call that a user application can use in order to interact with a device driver. On Linux, for example, this is the ioctl() ("I/O control") system call. It takes 3 arguments: (1) the device identifier number, (2) the command number: each command tells the driver to perform a certain action, and (3) a pointer to (address in) memory with the data structure that is needed for the performance of the action.

The following diagram lists various device traits (by which devices differ) and brings several examples.