وبلاگ بلیان

Linux Device Drivers, 2nd Edition

معرفی کتاب «Linux Device Drivers, 2nd Edition» نوشتهٔ Jonathan Corbet, Alessandro Rubini، منتشرشده توسط نشر O'Reilly Media در سال 2001. این کتاب در 87 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Linux Device Drivers, 2nd Edition» در دستهٔ بدون دسته‌بندی قرار دارد.

Honestly, I really don't understand how anyone can give this book 5 stars. To start off on a positive tone, I'll say what I liked about it. 1) Lots of information. There is no denying this, it is very informitive. However, this is a double edged swords (will discuss later) 2) The basic drivers are described pretty well. The scull driver is a good way to ease into driver development, imo. Simple enough that it's not too overwhelming and ununderstandable, but not overly simple so that you actually get an idea of what's going on. 3) It's free. That's it for the positives. Now for a huge list of negatives. 1) Most of the information is irrelevent. I feel like the authors lost focus as the book went on, and forgot they were not writing a general "Linux Kernel" book but a specific book for drivers. Many a time do they spend pages upon pages going on about something, only to mention "but this is never used by read driver developers" at the end. You end up in a really unpleasant situation where you have to sift through a bunch of useless info to get to the useful stuff. Most of the time I ended up just searching google, and got better results. 2) Lack of more complex examples. Let's face it, no one needs to write an extremely simple char driver. However, that's as complex as the examples get. Beyond the scull driver, it's just code fragments. I sincerely hope you don't have to write a serial tty device. Which leads me to my next point. 3) Outdated. Many kernel API changes have been made to the point where the code is no longer compilable (especially on the tty front). Methods used in the book have been done away with in the newer kernel API's. Honestly, you're much better off just resorting to Google. If you want to write your own driver and you read through this book, you'll still have no idea where to start. The functions in the scull driver are well-described, but that's it. The authors use too much space writing about useless crap you really don't care about, and this comes at the expense of useful info that will actually help you write drivers. This book will probably come up on your google searches, and it might be worth it to skim the regular chapters. Honestly though, it's not going to tell you anything your other search results won't. This is most definitely not the "end all, be all" of writing linux drivers, it just happens to be the only one.

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)


"We're back to the times when men were men and wrote their own device drivers." -- Linus Torvalds. Of course, this is also a very good publication for the excellent, equally facile (and less macho) kernel and hardware programmers of the opposite gender. Comments aside, this is a very good (and to-date the only publication) for programmers and developers that covers device drivers in-depth. The author assumes that you understand the Linux kernel and C code.

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. Nwely updated to include new calls and techniques introduced in Versions 2.2 and 2.4 of the Linux kernel, a definitive resource for those who want to support computer peripherals under the Linux operating system explains how to write a driver for a broad spectrum of devices, including character devices, network interfaces, and block devices. Original. (Intermediate) Provides "hands-on" information on writing device drivers for the Linux system, with particular focus on the features of the 2.4 kernel and its implementation
دانلود کتاب Linux Device Drivers, 2nd Edition