Skip to content

Linux Device Drivers Where the Kernel Meets the Hardware

Spend $50 to get a free movie!

ISBN-10: 0596005903

ISBN-13: 9780596005900

Edition: 3rd 1998

Authors: Alessandro Rubini, Jonathan Corbet, Greg Kroah-Hartman

List price: $49.95
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic "Linux Device Drivers from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you'll need to write drivers for a wide range of devices. Over the years the book has helped countless programmers learn: how to support computer peripherals under the Linux operating system how to…    
Customers also bought

Book details

List price: $49.95
Edition: 3rd
Copyright year: 1998
Publisher: O'Reilly Media, Incorporated
Publication date: 2/22/2005
Binding: Paperback
Pages: 640
Size: 7.00" wide x 9.00" long x 1.25" tall
Weight: 2.332
Language: English

Alessandro installed Linux 0.99.14 soon after getting his degree as electronic engineer. He then received a Ph.D. in computer science at the University of Pavia despite his aversion toward modern technology. He left the University after getting his Ph.D. because he didn't want to write articles. He now works as a free lancer writing device drivers and, um...articles. He used to be a young hacker before his babies were born; he's now an old advocate of Free Software who developed a bias for non-PC computer platforms.

Greg Kroah-Hartman has been writing Linux kernel drivers since 1999, and is currently the maintainer for the USB, PCI, I2C, driver core, and sysfs kernel subsystems. He is also the maintainer of the udev and hotplug userspace programs, as well as being a Gentoo kernel maintainer, ensuring that his email inbox is never empty. He is a contributing editor to Linux Journal Magazine, and works for IBM's Linux Technology Center, doing various Linux kernel related tasks.

An Introduction to the Linux Kernel
The Role of the Driver Writer
Splitting the Kernel
Classes of Devices and Modules
Security Issues
Version Numbering
License Terms
Overview of the Book
Building and Running Modules
Modules Versus Applications
Compiling and Loading
The Kernel Symbol Table
Initialization and Shutdown
Using Resources
Automatic and Manual Configuration
Doing It in User Space
Quick Reference
Char Drivers
The Design of scull
Major and Minor Numbers
File Operations
The file Structure
Open and Close
Scull's Memory Usage
Read and Write
Playing with the New Devices
Quick Reference
Debugging Techniques
Debugging by Printing
Debugging by Querying
Debugging by Watching
Debugging System Faults
Using a Debugger
Enhanced Char Driver Operations
Blocking I/O
Asynchronous Notification
Seeking a Device
Access Control on a Device File
Quick Reference
Flow of Time
Time Intervals in the Kernel
Knowing the Current Time
Delaying Execution
Task Queues
Kernel Timers
Quick Reference
Getting Hold of Memory
The Real Story of kmalloc
get_free_page and Friends
vmalloc and Friends
Playing Dirty
Quick Reference
Hardware Management
Using I/O Ports
Using the Parallel Port
Accessing Memory on Device Boards
Accessing the Text-Mode Video Buffer
Quick Reference
Interrupt Handling
Preparing the Parallel Port
Installing an Interrupt Handler
Implementing a Handler
Bottom Halves
Interrupt Sharing
Interrupt-Driven I/O
Race Conditions
Version Dependencies of IRQ Handling
Quick Reference
Judicious Use of Data Types
Use of Standard C Types
Assigning an Explicit Size to Data Items
Interface-Specific Types
Other Portability Issues
Quick Reference
Kerneld and Advanced Modularization
Loading Modules on Demand
Version Control in Modules
Persistent Storage Across Unload/Load
Quick Reference
Loading Block Drivers
Registering the Driver
The Header File blk.h
Handling Requests
How Mounting Works
The ioctl Method
Removable Devices
Partitionable Devices
Interrupt-Driven Block Drivers
Quick Reference
Mmap and DMA
Memory Management in Linux
The mmap Device Operation
Direct Memory Access
Quick Reference
Network Drivers
How snull Is Designed
Connecting to the Kernel
The device Structure in Detail
Opening and Closing
Packet Transmission
Packet Reception
Interrupt-Driven Operation
The Socket Buffers
Address Resolution
Load-Time Configuration
Run-Time Configuration
Custom ioctl Commands
Statistical Information
Quick Reference
Overview of Peripheral Buses
The PCI Interface
A Look Back: ISA
Other PC Buses
Quick Reference
Physical Layout of the Kernel Source
Booting the Kernel
Before Booting
The Init Process
The kernel Directory
The mm Directory
The fs Directory
IPC and lib Functions
Architecture Dependencies
Recent Developments
File Operations
Accessing User Space
Task Queues
Interrupt Management
Bit Operations
Conversion Functions
Virtual Memory
Handling Kernel-Space Faults
Other Changes