-
Chapter 1 An Introduction to Device Drivers
-
The Role of the Device Driver
-
Splitting the Kernel
-
Classes of Devices and Modules
-
Security Issues
-
Version Numbering
-
License Terms
-
Joining the Kernel Development Community
-
Overview of the Book
-
-
Chapter 2 Building and Running Modules
-
Kernel Modules Versus Applications
-
Compiling and Loading
-
The Kernel Symbol Table
-
Initialization and Shutdown
-
Using Resources
-
Automatic and Manual Configuration
-
Doing It in User Space
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 3 Char Drivers
-
The Design of scull
-
Major and Minor Numbers
-
File Operations
-
The file Structure
-
open and release
-
scull's Memory Usage
-
A Brief Introduction to Race Conditions
-
read and write
-
Playing with the New Devices
-
The Device Filesystem
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 4 Debugging Techniques
-
Debugging by Printing
-
Debugging by Querying
-
Debugging by Watching
-
Debugging System Faults
-
Debuggers and Related Tools
-
-
Chapter 5 Enhanced Char Driver Operations
-
ioctl
-
Blocking I/O
-
poll and select
-
Asynchronous Notification
-
Seeking a Device
-
Access Control on a Device File
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 6 Flow of Time
-
Time Intervals in the Kernel
-
Knowing the Current Time
-
Delaying Execution
-
Task Queues
-
Kernel Timers
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 7 Getting Hold of Memory
-
The Real Story of kmalloc
-
Lookaside Caches
-
get_free_page and Friends
-
vmalloc and Friends
-
Boot-Time Allocation
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 8 Hardware Management
-
I/O Ports and I/O Memory
-
Using I/O Ports
-
Using Digital I/O Ports
-
Using I/O Memory
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 9 Interrupt Handling
-
Overall Control of Interrupts
-
Preparing the Parallel Port
-
Installing an Interrupt Handler
-
Implementing a Handler
-
Tasklets and Bottom-Half Processing
-
Interrupt Sharing
-
Interrupt-Driven I/O
-
Race Conditions
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 10 Judicious Use of Data Types
-
Use of Standard C Types
-
Assigning an Explicit Size to Data Items
-
Interface-Specific Types
-
Other Portability Issues
-
Linked Lists
-
Quick Reference
-
-
Chapter 11 kmod and Advanced Modularization
-
Loading Modules on Demand
-
Intermodule Communication
-
Version Control in Modules
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 12 Loading Block Drivers
-
Registering the Driver
-
The Header File blk.h
-
Handling Requests: A Simple Introduction
-
Handling Requests: The Detailed View
-
How Mounting and Unmounting Works
-
The ioctl Method
-
Removable Devices
-
Partitionable Devices
-
Interrupt-Driven Block Drivers
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 13 mmap and DMA
-
Memory Management in Linux
-
The mmap Device Operation
-
The kiobuf Interface
-
Direct Memory Access and Bus Mastering
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 14 Network Drivers
-
How snull Is Designed
-
Connecting to the Kernel
-
The net_device Structure in Detail
-
Opening and Closing
-
Packet Transmission
-
Packet Reception
-
The Interrupt Handler
-
Changes in Link State
-
The Socket Buffers
-
MAC Address Resolution
-
Custom ioctl Commands
-
Statistical Information
-
Multicasting
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 15 Overview of Peripheral Buses
-
The PCI Interface
-
A Look Back: ISA
-
PC/104 and PC/104+
-
Other PC Buses
-
SBus
-
NuBus
-
External Buses
-
Backward Compatibility
-
Quick Reference
-
-
Chapter 16 Physical Layout of the Kernel Source
-
Booting the Kernel
-
Before Booting
-
The init Process
-
The kernel Directory
-
The fs Directory
-
The mm Directory
-
The net directory
-
ipc and lib
-
include and arch
-
Drivers
-
-
Bibliography
-
Colophon
- Title:
- Linux Device Drivers, Second Edition
- By:
- Jonathan Corbet, Alessandro Rubini
- Publisher:
- O'Reilly Media
- Formats:
-
- Print Release:
- June 2001
- Pages:
- 592
- Print ISBN:
- 978-0-596-00008-0
- | ISBN 10:
- 0-596-00008-1
Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. The image on the cover of Linux Device Drivers is of a bucking horse. A colorful description of this appears in Marvels of the New West: A Vivid Portrayal of the Stupendous Marvels in the Vast Wonderland West of the Missouri River, by William Thayer (The Henry Bill Publishing Co., Norwich, CT, 1888). Thayer quotes a stockman, who gives this description of a bucking horse: "When a horse bucks he puts his head down between his legs, arches his back like an angry cat, and springs into the air with all his legs at once, coming down again with a frightful jar, and he sometimes keeps on repeating the performance until he is completely worn out with the excursion. The rider is apt to feel rather worn out too by that time, if he has kept his seat, which is not a very easy matter, especially if the horse is a real scientific bucker, and puts a kind of side action into every jump. The double girth commonly attached to these Mexican saddles is useful for keeping the saddle in its place during one of those bouts, but there is no doubt that they frequently make a horse buck who would not do so with a single girth. With some animals you can never draw up the flank girth without setting them bucking." Darren Kelly was the production editor, Cynthia Kogut was the copyeditor, and Susan Carlson Greene was the proofreader for Linux Device Drivers, Second Edition . Catherine Morris and Claire Cloutier provided quality control. Judy Hoer wrote the index. Matt Hutchinson, Lucy Muellner, and Joe Wizda provided production support.
Edie Freedman designed the cover of this book. The cover image is a 19th-century engraving from the Dover Pictorial Archive. Emma Colby produced the cover layout with QuarkXPress 4.1, using Adobe's ITC Garamond font.
David Futato designed the interior layout based on a series design by Nancy Priest. Chapter opener images are taken from the Dover Pictorial Archive, the book Marvels of the New West: A Vivid Portrayal of the Stupendous Marvels in the Vast Wonderland West of the Missouri River (by William M. Thayer, The Henry Bill Publishing Company, Norwich, CT, 1888), and The Pioneer History of America: A Popular Account of the Heroes and Adventures (by Augustus Lynch Mason, A.M., The Jones Brothers Publishing Company, Cincinnati, OH, 1884). The print version of this book was created by translating the DocBook XML markup of its source files into a set of gtroff macros, using a filter developed at O'Reilly & Associates by Norman Walsh. Steve Talbott designed and wrote the underlying macro set on the basis of the GNU troff –gs macros; Lenny Muellner adapted them to XML and implemented the book design. The GNU groff text formatter version 1.11.1 was used to generate PostScript output. The text and heading fonts are ITC Garamond Light and Garamond Book. The illustrations that appear in the book were produced by Robert Romano and Jessamyn Read using Macromedia FreeHand 9 and Adobe Photoshop 6.
