Linux Device Drivers and over one million other books are available for Amazon Kindle. Learn more


or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Kindle Edition
 
   
Sell Back Your Copy
For a $3.92 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Linux Device Drivers, 3rd 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, 3rd Edition [Paperback]

Jonathan Corbet (Author), Alessandro Rubini (Author), Greg Kroah-Hartman (Author)
4.2 out of 5 stars  See all reviews (54 customer reviews)

List Price: $39.95
Price: $24.20 & eligible for FREE Super Saver Shipping on orders over $25. Details
You Save: $15.75 (39%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it delivered Monday, January 30? Choose One-Day Shipping at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition $17.27  
Paperback $24.20  
Like this book? Find similar titles from O'Reilly and Partners in our O'Reilly Bookstore.

Book Description

February 14, 2005

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 application areas. 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.


Frequently Bought Together

Linux Device Drivers, 3rd Edition + Understanding the Linux Kernel, Third Edition + Linux Kernel Development (3rd Edition)
Price For All Three: $90.38

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details

  • Understanding the Linux Kernel, Third Edition $30.32

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Linux Kernel Development (3rd Edition) $35.86

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details



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. --This text refers to an out of print or unavailable edition of this title.

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 --This text refers to an out of print or unavailable edition of this title.

Product Details

  • Paperback: 640 pages
  • Publisher: O'Reilly Media; 3 edition (February 14, 2005)
  • Language: English
  • ISBN-10: 0596005903
  • ISBN-13: 978-0596005900
  • Product Dimensions: 7 x 9.1 x 1.3 inches
  • Shipping Weight: 2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.2 out of 5 stars  See all reviews (54 customer reviews)
  • Amazon Best Sellers Rank: #43,208 in Books (See Top 100 in Books)

More About the Authors

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

 

Customer Reviews

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

27 of 27 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?)
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)
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.
 
(12)

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
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject