Drivers
There is little to say at this point about the Linux drivers
directory. The source files in this directory have been referenced throughout
the book; that’s why I left them until last in this walk through the
source tree.
Char, Block, and Network Drivers
Although most of the drivers in these directories are specific to a particular hardware device, a few of the files play a more general role in the system’s setup.
As far as drivers/char
is concerned, code that
implements the N_TTY
line discipline is implemented there.
N_TTY
is the default line discipline for
system ttys, and it is defined in n_tty.c
. Another
device-independent file in drivers/char
is misc.c
, which
provides support for ``misc'' devices. A ``misc'' device is a simplified
char driver that has a single minor number.
This directory also includes console support for PCs and some other architecture-dependent drivers; it actually contains a miscellaneous assortment of files that didn’t fit elsewhere.
drivers/block
is much cleaner. It includes single-file
drivers for most block devices and the full-featured IDE driver, which
is split into multiple files. Several files in this directory provide
general-purpose support; genhd.c
handles partition tables and
ll_rw_block.c
is in charge of the low-level mechanism for data
transfer to and from the physical device. The request
structure is
the main player in ll_rw_block.c
.
drivers/net
contains a long list of drivers for PC network cards, plus a few for other architectures ...
Get Linux Device Drivers now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.