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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access