Summary/Excerpts of (and not a substitute for) the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Generic:
You are free to:
Share — copy and redistribute the material in any medium or format
Adapt — remix, transform, and build upon the material
The licensor cannot revoke these freedoms as long as you follow the license terms.
Click
here to read the full license.
:santagrin: This book was suggested by
zero0w
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.
Reviews:
Amazon.com
:| "It was all pretty, and the suggested material inside also led me further down learning lane. But, the book itself was not very helpful to me."
:) "The book explains well individual issues as they arise. But having a clear, top-down understanding of the linux kernel may give you more context to understand the chapters."
:) "I used this book to write a device driver for my computer engineering senior project and found it to be very helpfull, but it could have been better. "
:( "In summary, this book is NOT a tutorial. It is NOT a guide. Don't make the mistake of buying this book expecting a gentle (or even a not-so-gentle) introduction to writing device drivers."