Amazon.com: Linux Device Drivers, 2nd Edition (9780596000080): Jonathan Corbet, Alessandro Rubini: Books
Linux Device Drivers and over one million other books are available for Amazon Kindle. Learn more

Buy Used
Used - Good See details
$4.41 & eligible for FREE Super Saver Shipping on orders over $25. Details

or
Sign in to turn on 1-Click ordering.
 
   
Kindle Edition
 
   
Have one to sell? Sell yours here
Linux Device Drivers, 2nd Edition
 
 
Start reading Linux Device Drivers on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Linux Device Drivers, 2nd Edition [Paperback]

Jonathan Corbet (Author), Alessandro Rubini (Author)
4.2 out of 5 stars  See all reviews (55 customer reviews)


Available from these sellers.


Formats

Amazon Price New from Used from
Kindle Edition $17.27  
Paperback $24.35  
Paperback, June 2001 --  
There is a newer edition of this item:
Linux Device Drivers, 3rd Edition Linux Device Drivers, 3rd Edition 4.2 out of 5 stars (55)
$24.35
In Stock.

Book Description

June 2001

This book is for anyone who wants to support computer peripherals under the Linux operating system or who wants to develop new hardware and run it under Linux. Linux is the fastest-growing segment of the Unix market, is winning over enthusiastic adherents in many application areas, and is being viewed more and more as a good platform for embedded systems. Linux Device Drivers, already a classic in its second edition, reveals information that heretofore has been shared by word of mouth or in cryptic source code comments, on how to write drivers for a wide range of devices.

Version 2.4 of the Linux kernel includes significant changes to device drivers, simplifying many activities, but providing subtle new features that can make a driver both more efficient and more flexible. The second edition of this book thoroughly covers these changes, as well as new processors and buses.

You don't have to be a kernel hacker to understand and enjoy this book; all you need is an understanding of C and some background in Unix system calls. You'll learn how to write drivers for character devices, block devices, and network interfaces, guided by full-featured examples that you can compile and run without special hardware. Major changes in the second edition include discussions of symmetric multiprocessing (SMP) and locking, new CPUs, and recently supported buses. For those who are curious about how an operating system does its job, this book provides insights into address spaces, asynchronous events, and I/O.

Portability is a major concern in the text. The book is centered on version 2.4, but includes information for kernels back to 2.0 where feasible. Linux Device Driver also shows how to maximize portability among hardware platforms; examples were tested on IA32 (PC) and IA64, PowerPC, SPARC and SPARC64, Alpha, ARM, and MIPS.

Contents include:

  • Building a driver and loading modules
  • Complete character, block, and network drivers
  • Debugging a driver
  • Timing
  • Handling symmetric multiprocessing (SMP) systems
  • Memory management and DMA
  • Interrupts
  • Portability issues
  • Peripheral Component Interconnect (PCI)


Editorial Reviews

Amazon.com Review

Updated to cover version 2.4.x of the Linux kernel, the second edition of Linux Device Drivers remains the best general-purpose, paper-bound guide for programmers wishing to make hardware devices work under the world's most popular open-source operating system. The authors take care to show how to write drivers that are portable--that is, that compile and run under all popular Linux platforms. That, along with the fact that they're careful to explain and illustrate concepts, makes this book very well suited to any programmer familiar with C but not with the hardware-software interface. It's worth noting that the emphasis in the title is on "device drivers" as much as "Linux." This book will make sense to you if you've never written a driver for any platform before. It helps if you have some Linux or Unix background, but even that is secondary as a prerequisite to C skill.

For a programming text--and one concerned with low-level instructions and data structures, at that--this book is remarkably rich in prose. You'll typically want to read this book straight through, more or less skipping the code samples, before sketching out your plan for the driver you need to write. Then, go back and pay closer attention to the sections on specific details you need to implement, like custom task queues. For coding-time details about specific system calls and programming techniques, count on the index to point you to the right passages. --David Wall

Topics covered: Techniques for writing hardware device drivers that run under Linux kernels 2.0.x through 2.2.x. Sections show how to manage memory, time, interrupts, ports, and other details of the hardware-software interface.

Review

'Quite simply, It's an inspiration for anyone interested in pushing contemporary computer hardware and GNU/Linux to the limit'. Linux User, October 2001

Product Details

  • Paperback: 562 pages
  • Publisher: O'Reilly Media; 2nd edition (June 2001)
  • Language: English
  • ISBN-10: 0596000081
  • ISBN-13: 978-0596000080
  • Product Dimensions: 9.2 x 7.1 x 1.2 inches
  • Shipping Weight: 2 pounds
  • Average Customer Review: 4.2 out of 5 stars  See all reviews (55 customer reviews)
  • Amazon Best Sellers Rank: #1,512,705 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

55 Reviews
5 star:
 (34)
4 star:
 (10)
3 star:
 (3)
2 star:
 (4)
1 star:
 (4)
 
 
 
 
 
Average Customer Review
4.2 out of 5 stars (55 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

28 of 28 people found the following review helpful:
4.0 out of 5 stars great book for the right person, February 19, 2005
By 
Charles Notley (Mountain View, CA USA) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: Linux Device Drivers, 2nd Edition (Paperback)
I used this book to write a device driver for my computer engineering senior project. It was very helpfull, but could improve. 2nd edition covers almost everything you'll need for 2.4 kernel drivers. Organization is like a text book that includes reference material, but attempts to be a tutorial. Hopefully the 3rd edition will be better organized. I noticed lots of negative reviews on Amazon, but after reading some chapters on safari (the oreilly free book site) I decided to purchase it any ways. If you buy this book and don't have a solid background in operating systems, computer architecture, and microprocessor interfacing you probably won't have an easy time understanding several key topics well enough to write a working driver. This will probably make you mad enough to write another bad review.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


44 of 48 people found the following review helpful:
2.0 out of 5 stars Needs work., September 2, 1999
By 
Jack Dennon (Warrenton, OR USA) - See all my reviews
(REAL NAME)   
Does contain lots of interesting info about Linux drivers and Linux in general. But the meat is more reference than tutorial. A really great tutorial begins chapter two, and so I thought here I'm really going to learn everything I need to know about creating Linux drivers. Didn't turn out that way. After you work the first exercise, that is, the tutorial example at the beginning of chapter two, you have seen the last of the complete examples. From here on it's code fragments and isolated functions. The author obviously could have written the book we need. But he didn't. It's a valuable book, but it's not a tutorial. What a beginner needs are whole, complete, real, listings of programs that work. Which reminds me, a real driver that drives a real device, presented in its entirety, with all details of how to compile it, and how to run it, would have been far more instructive than a "driver" that reads and writes only in memory so that it can be "portable" across many Linux platforms. A portable driver probably is a neat stunt that impresses existing gurus, but that's not the group that needs this book. To see what I'm driving at, look at Kernighan and Pike's "The UNIX Programming Environment." Their big programming project is indeed presented in fragments and isolated functions in their chapter eight, but the entire project just as it will appear on your disk is listed in the appendix. If Rubini had followed that model his book could have been really instructive. But he didn't. So there's an opportunity here. Some guru should set down and assemble these fragments into the book we need.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


17 of 17 people found the following review helpful:
4.0 out of 5 stars A good book, if you know what your doing, September 11, 1999
By A Customer
This is a great book for understanding drivers and the Linux kernel internals, but only if you have a strong assembly/C background and know PC hardware. I found myself checking other books on programming often to understand the content of this book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
Browse and search another edition of this book.
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
debugging techniques, block drivers, interrupt handling, request processing, deferred work, function pointers, packet reception, scull driver, nopage method, unsigned int channel, struct attribute attr, struct kobject, llseek method, cdev structure, specific tty device, tty driver, sysfs entry, unsigned int order, unsigned port, urb structure, sysfs directory, wait queue entry, isochronous urbs, char drivers, int nents
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Quick Reference, Advanced Char Driver Operations, Network Drivers, Direct Memory Access, Data Types, Device Operation, Allocating Memory, Receive Interrupt Mitigation, Transfers Without Urbs, Performing Direct, Lookaside Caches, Putting It All Together, Delaying Execution, Completing Urbs, Hotplug Event Generation, The Socket Buffers, Some Important Data Structures, Device Basics, Debugging System Faults, Low-Level Sysfs Operations, Micro Channel, Memory Mapping
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
Search Inside This Book:


What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject