Most external devices are capable of both input and output (I/O). Some devices are inherently input-only (also called read-only) or inherently output-only (also called write-only). Regardless of whether a device is I/O, read-only, or write-only, external devices can be classified as block or character devices.
A
character device is one that inputs or outputs data in a stream of
characters, bytes, or bits. Character devices can further be classified as
serial or parallel. Examples of character devices include printers, keyboards,
and mice.
A
serial device streams data as a series of bits, moving data one bit at a
time. Examples of serial devices include printers and MODEMs.
A
parallel device streams data in a small group of bits simultaneously.
Usually the group is a single eight-bit byte (or possibly seven or nine bits,
with the possibility of various control or parity bits included in the data
stream). Each group usually corresponds to a single character of data. Rarely
there will be a larger group of bits (word, longword, doubleword, etc.). The
most common parallel device is a printer (although most modern printers have
both a serial and a parallel connection, allowing greater connection
flexibility).
A
block device moves large blocks of data at once. This may be physically
implemented as a serial or parallel stream of data, but the entire block gets
transferred as single packet of data. Most block devices are random access
(that is, information can be read or written from blocks anywhere on the
device). Examples of random access block devices include hard disks, floppy
disks, and drum drives. Examples of sequential access block devcies include
magnetic tape drives and high speed paper tape readers.