Buy Used
Used - Like New See details
Price: 5.91

Trade in Yours
For a 0.25 Gift Card
Trade in
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Tell the Publisher!
Id like to read this book on Kindle

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

Linux Device Drivers, 2nd Edition [Paperback]

Jonathan Corbet , Alessandro Rubini
3.0 out of 5 stars  See all reviews (1 customer review)

Available from these sellers.

Trade In this Item for up to 0.25
Trade in Linux Device Drivers, 2nd Edition for an Amazon Gift Card of up to 0.25, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more
There is a newer edition of this item:
Linux Device Drivers Linux Device Drivers 4.0 out of 5 stars (8)
In stock.

Book Description

5 July 2001 0596000081 978-0596000080 2

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)

Product details

  • Paperback: 592 pages
  • Publisher: O'Reilly Media; 2 edition (5 July 2001)
  • Language: French
  • ISBN-10: 0596000081
  • ISBN-13: 978-0596000080
  • Product Dimensions: 23.4 x 18.1 x 2.9 cm
  • Average Customer Review: 3.0 out of 5 stars  See all reviews (1 customer review)
  • Amazon Bestsellers Rank: 1,233,869 in Books (See Top 100 in Books)
  • See Complete Table of Contents

Product Description

Amazon 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, such as 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.


Linux Journals Editors' Choice Best Technical Book of 2002 Award -- Linux Journals Editors'

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

5 star
4 star
2 star
1 star
3.0 out of 5 stars
3.0 out of 5 stars
Most Helpful Customer Reviews
3.0 out of 5 stars Too complicated for me 26 May 2014
Format:Paperback|Verified Purchase
This is a book about the nitty gritty of low level drivers. You need to be fluent in C and C++ in order to read and understand this book. It was too complex for me.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 4.0 out of 5 stars  13 reviews
29 of 29 people found the following review helpful
4.0 out of 5 stars great book for the right person 20 Feb 2005
By Amazon Customer - Published on
Format:Paperback|Verified Purchase
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.
82 of 99 people found the following review helpful
1.0 out of 5 stars OK reference. Bad tutorial ... 11 Sep 2002
By "irvine_dude" - Published on
Before starting let me assure you that I had written SCSI drivers for SVR4 and 4.2. I had also done some proprietary drivers for *BSDs earlier during undergrad/grad years.
After reading all the reviews and all the ravings about this book, I made the mistake of spending my money on it! Alas! What a waste. Its like one gigantic piece of mish-mash-mess. All the information might be in there (who knows). But, finding out the correct info is almost impossible! The scull driver is a joke.
Another irritating thing about the book is that it attempts to throw all sorts of info at you, all at the same time! Guys, take a break. Present information, one at a time, and only when needed.
Essentially, I was trying to write a driver to read information off my Nikon F100 onto my TP600 running Mandrake 8.0. And life was miserable till I finally started digging through some other driver code that you get with the kernel sources. Gosh, that made life so simple.
But, when I first read this book, I was almost ready to give up writing Linux drivers. I didn't know where to start and where I would end up! I was lost, confused, and felt utterly hopeless.
Also, I wondered if the other guys who had raved about this book were:
1. the authors and their friends?
2. guys who had no clue what they were talking/writing about?
3. guys who were happy to see that there was a book on Linux drivers, but neither bought nor read it!
So, don't trust these reviews. This is one heck of a horrible book that you should most definitely stay away from. Cause if you read, you would never be able to write any useful drivers.
Read the source.
9 of 10 people found the following review helpful
4.0 out of 5 stars Good general, if rather intel specific, guide 7 Jan 2002
By A Customer - Published on
This is a good book - and I joined the Linux kernel immortals by writing a driver for a previously unsupported device based on it. But it does have a few flaws.
Firstly, it is pretty much Intel (ix86) specific - other processors are mentioned in passing.
Secondly it doesn't deal with the real world of Linux devices (ie where the manufacturer has told you little or nothing).
And thirdly, it never quite goes far enough in exploring the difficult issues - I thought this was the case with IRQ handling especially.
But, all in all, the best on offer and well worth buying.
5 of 6 people found the following review helpful
5.0 out of 5 stars Excellent book choice for anyone trying to do device support 16 Aug 2001
By Frank Earl - Published on
If you're looking for a good overview/reference for making device drivers happen on Linux, this book is a must-have. It covers most of the pertinent topics (incl. handling cross-platform support details) and covers them with a view on the 2.4.X kernels- whlie explaining the old functionalities all the way back to the 2.0.X kernels to enable you to write backwards compatible drivers if you so desire.
1 of 1 people found the following review helpful
4.0 out of 5 stars Nice Try 10 Mar 2013
By F. Peralta - Published on
Format:Paperback|Verified Purchase
This work is a great introduction to device drivers. Unfortunately, it was obsolete before it go to press... For beginners, check out Xinu, by Doug Comer. For veterans, check online for the latest... and always "use the source".
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

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

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

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category