Linux Device Drivers

ISBN-10: 0596005903
ISBN-13: 9780596005900
Edition: 3rd 1998
List price: $39.95 Buy it from $16.69
eBook available
30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy

Description: 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  More...

New Starting from $30.02
eBooks Starting from $31.99
Rent
Buy
what's this?
Rush Rewards U
Members Receive:
coins
coins
You have reached 400 XP and carrot coins. That is the daily max!
You could win $10,000

Get an entry for every item you buy, rent, or sell.

Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
Italian Grammar Online content $4.95 $1.99
Add to cart
Study Briefs
Portuguese Grammar Online content $4.95 $1.99
Add to cart
Study Briefs
Spanish Grammar Online content $4.95 $1.99
Add to cart
Study Briefs
German Grammar Online content $4.95 $1.99

Customers also bought

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

Book details

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

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 develop and write software for new hardware under Linux the basics of Linux operation even if they are not expecting to write a driver The new edition of "Linux Device Drivers is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more. Best of all, you don't have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware. Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many applicationareas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you're writing device drivers, you'll want this book. In fact, you'll wonder how drivers are ever written without it.

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.

Preface
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
ioctl
Blocking I/O
Select
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
Multicasting
Quick Reference
Overview of Peripheral Buses
The PCI Interface
A Look Back: ISA
Other PC Buses
Sbus
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
Networking
IPC and lib Functions
Drivers
Architecture Dependencies
Recent Developments
Modularization
File Operations
Accessing User Space
Task Queues
Interrupt Management
Bit Operations
Conversion Functions
vremap
Virtual Memory
Handling Kernel-Space Faults
Other Changes
Index

×
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.

×