Monday, October 10, 2011

Linux device driver 3rd edition by Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman

Linux Device Drivers, 3rd Edition

Author(s) : Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
Publication date : February 2005
ISBN : 0596005903
Paperback: 640 pages
Publisher : O'Reilly & Associates
Free license : Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License

Book excerpts:

This is the third edition of Linux Device Drivers. It is, on the surface, a book about writing device drivers for the Linux system. That is a worthy goal, of course; the flow of new hardware products is not likely to slow down anytime soon, and somebody is going to have to make all those new gadgets work with Linux. But this book is also about how the Linux kernel works and how to adapt its workings to your needs or interests. Linux is an open system; and this book should make it more open and accessible to a larger community of developers.

The kernel has changed greatly since this book was first published, with this edition covers the 2.6.10

kernel. The discussion of backward compatibility with previous kernel versions has been omitted. The changes from 2.4 are simply too large, and the 2.4 interface remains well documented in the freely available second edition.

This edition contains quite a bit of new material relevant to the 2.6 kernel. The discussion of locking and concurrency has been expanded and moved into its own chapter. The Linux device model, which is new in 2.6, is covered in detail. There are new chapters on the USB bus and the serial driver subsystem; the chapter on PCI has also been enhanced. While the organization of the rest of the book resembles that of the earlier editions, every chapter has been thoroughly updated.

Intended Audience: 

This book should be an interesting source of information both for people who want to experiment with their computer and for technical programmers who face the need to deal with the inner levels of a Linux box. Note that 'a Linux box' is a wider concept than 'a PC running Linux,' as many platforms are supported by our operating system, and kernel programming is by no means bound to a specific platform. This book should be useful as a starting point for people who want to become kernel hackers but don?t know where to start.

On the technical side, this text should offer a hands-on approach to understanding the kernel internals and some of the design choices made by the Linux developers. Although the main, official target of the book is teaching how to write device drivers, the material should give an interesting overview of the kernel implementation as well.

In order to be able to use this book, you need to be confident with C programming. Some Unix expertise is needed as well, as this books often refer to Unix semantics about system calls, commands, and pipelines.

At the hardware level, no previous expertise is required to understand the material in this book, as long as the general concepts are clear in advance. The text isn?t based on specific PC hardware, and all the needed information were provided when specific hardware was referred.


No comments: