Search

Table of Contents
Linux Device Drivers, 2nd Edition
BOOK:
Linux Device Drivers, 2nd Edition
Browse by Category
 
 
Hide Left Column
Linux Device Drivers, 2nd Edition
Linux Device Drivers, 2nd Edition
by Alessandro Rubini; Jonathan Corbet

Publisher: O'Reilly Media, Inc.
Pub Date: June 25, 2001
More recent edition of this book available.
Print ISBN-13: 978-0-596-00008-0
Pages: 592
Slots: 1.0
Start Reading
Overview

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
Product Description
This practical guide is for anyone who wants to support computer peripherals or develop new hardware to run under the Linux operating system. It shows how to write drivers for a wide range of devices, revealing information previously shared only by word of mouth or in cryptic source code comments. 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. Major changes covered in the second edition include 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. The second edition is centered on Kernel 2.4, but includes information for kernels back to 2.0 where feasible.
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.

 
Other Readers Also Read
Top Sellers in This Category
Browse Similar Topics
   
Reader Reviews From Amazon (Ranked by 'Helpfulness')
Average Customer Rating:based on 46 reviews.
A good balance of "How" and "Why", 2009-05-09
Reviewer rating:
I have read both this book and Sreekrishnan Venkateswaran's Essential Linux Device Drivers, both are excellent, I prefer this one on generic topics such as:

Chapter 5. Concurrency and race conditions
Chapter 8. Allocating memory
Chapter 10. Interrupt Handling
Chapter 14. The Linux Device Model

How ever Sreekrishnan's book covers video and audio driver which are useful for my work.

As for styles, both keep a good balance of "how" and "why", I think the "why" parts are more important, the whole s/w is all about concepts.

Possibly still the best book on the subject, 2008-12-13
Reviewer rating:
Even though the third edition is showing its age - it covers kernel version 2.6.10, which is terribly old - in my opinion this is still the best book on the subject.

Generally, it is not possible to create an up to date tutorial for programming the Linux kernel, since it changes constantly. SO, the key is to introduce the reader to the way of thinking necessary in order to understand and develop for the kernel. I think this book succeeds marvelously.
Best book for device drivers programming, 2008-09-18
Reviewer rating:
This book covers in a excelent way all the process for creating device drivers. Its very good for who wants to start to programming and for who already knows how to programming.
Device Drivers, 2008-07-17
Reviewer rating:
This books must be the top priority for ever developer who wants to develop emebedded systems, based on Linux OS.
I Can do this., 2008-02-16
Reviewer rating:
As a newbie it makes driver writing not so scary.
Technical masterpiece yet not over my head.
 
Some information above was provided using data from Amazon.com. View at Amazon >
Linux Device Drivers, 2nd Edition
Linux Device Drivers, 2nd Edition
by Alessandro Rubini; Jonathan Corbet

Publisher: O'Reilly Media, Inc.
Pub Date: June 25, 2001
More recent edition of this book available.
Print ISBN-13: 978-0-596-00008-0
Pages: 592
Slots: 1.0
Start Reading
Company | Terms of Service | Privacy Policy | Contact Us | Help | 508 Compliance | Subscribe Now
© 2009 Safari Books Online. All rights reserved.