Free Downloads
Essential Linux Device Drivers (Prentice Hall Open Source Software Development Series)

“Probably the most wide ranging and complete Linux device driver book I’ve read.” --Alan Cox, Linux Guru and Key Kernel Developer   “Very comprehensive and detailed, covering almost every single Linux device driver type.” --Theodore Ts’o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation   The Most Practical Guide to Writing Linux Device Drivers Linux now offers an exceptionally robust environment for driver development: with today’s kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world’s most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today’s fastest growing areas of Linux development. For each, Venkateswaran explains the technology, inspects relevant kernel source files, and walks through developing a complete example.   • Addresses drivers discussed in no other book, including drivers for I2C, video, sound, PCMCIA, and different types of flash memory • Demystifies essential kernel services and facilities, including kernel threads and helper interfaces • Teaches polling, asynchronous notification, and I/O control • Introduces the Inter-Integrated Circuit Protocol for embedded Linux drivers • Covers multimedia device drivers using the Linux-Video subsystem and Linux-Audio framework • Shows how Linux implements support for wireless technologies such as Bluetooth, Infrared, WiFi, and cellular networking • Describes the entire driver development lifecycle, through debugging and maintenance • Includes reference appendixes covering Linux assembly, BIOS calls, and Seq files

File Size: 16410 KB

Print Length: 744 pages

Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits

Publisher: Prentice Hall; 1 edition (March 27, 2008)

Publication Date: March 27, 2008

Sold by:  Digital Services LLC

Language: English


Text-to-Speech: Enabled

X-Ray: Not Enabled

Word Wise: Not Enabled

Lending: Not Enabled

Enhanced Typesetting: Not Enabled

Best Sellers Rank: #351,528 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #10 in Books > Computers & Technology > Programming > APIs & Operating Environments > Device Drivers #120 in Books > Computers & Technology > Operating Systems > Linux > Programming #286 in Kindle Store > Kindle eBooks > Computers & Technology > Operating Systems

Anyone who is looking to purchase this book is either taking a class in driver development or is new to driver development and is looking for guidance. This book is a great attempt at an all in one driver development book, however; falls flat due to errors in the text and code samples. Sadly it is obvious there was very little error checking or testing of code samples in the book. Someone who is new to such a complex subject should be able to rely on accurate code example and explanations without having to constantly be on the lookout for errors. Some of the errors found are expected of new CS students and not seasoned professionals ( eg. Performing kmalloc() without calling kfree() ) or (allocating memory to a single variable in a for loop eg. var_ptr = kmalloc() both of which exist in Example 5.1 of the book ). The author also fails to explain kernel function's arguments and only mentioned the kernel functions themselves. This makes it difficult to know what/why arguments are being passed.Please see the author's errata page:[...](Link removed by )Additionally there is another errata page for the book:[...](Link removed by )The high number of errors take away from the readers experience with learning the subject. More time is spent reading and checking the author's Errata page to make sure they are not misinformed. This book will probably be worth 4 stars if they release a second edition with all the errors fixed. It may be worth picking up LDD3 as a supplement and probably has less errors. Additionally, the author spends a ton of time in the beginning discussing kernel threads, klists, ktrees, IRQs, softirqs, and other key kernel components and hardware specifics.

Essential Linux Device Drivers (Prentice Hall Open Source Software Development Series) Embedded Linux Primer: A Practical Real-World Approach (Prentice Hall Open Source Software Development Series) Embedded Linux Systems with the Yocto Project (Prentice Hall Open Source Software Development) LINUX: Linux Command Line, Cover all essential Linux commands. A complete introduction to Linux Operating System, Linux Kernel, For Beginners, Learn Linux in easy steps, Fast! A Beginner's Guide Pro OpenSolaris: A New Open Source OS for Linux Developers and Administrators (Expert's Voice in Open Source) Fundamentals of Network Analysis and Synthesis (Prentice-Hall electrical engineering series. Solid state physical electronics series. Prentice-Hall networks series) Prentice hall literature (common core edition) (teachers edition grade 6) (Prentice Hall and Texas Instruments Digital Signal Processing Series) Linux: Linux Guide for Beginners: Command Line, System and Operation (Linux Guide, Linux System, Beginners Operation Guide, Learn Linux Step-by-Step) Big Data Fundamentals: Concepts, Drivers & Techniques (The Prentice Hall Service Technology Series from Thomas Erl) Nessus Network Auditing: Jay Beale Open Source Security Series (Jay Beale's Open Source Security) Linux Device Drivers Linux PCI Device Driver - A Template (Linux Driver Development) Linux Char Device Driver - A Template (Linux Driver Development) Linux: Linux Mastery. The Ultimate Linux Operating System and Command Line Mastery (Operating System, Linux) FreeBSD Device Drivers: A Guide for the Intrepid Developing Windows NT Device Drivers: A Programmer's Handbook Writing Windows VxDs and Device Drivers Pro Windows Embedded Compact 7: Producing Device Drivers (Expert's Voice in Windows) Compiler Design in C (Prentice-Hall software series) Using Open Source Web Software with Windows (Charles River Media Internet)