Linux debugging

book coverLinux debugging and performance tuning : tips and techniques / Steve Best, Prentice Hall,  2006

This book is for programmers developing Linux applications, particularly if you have multiple processes or threads.  It has been useful in my current work.  In the open source world there is a profusion of tools available, to the point that it is hard to know which ones to use.  This book reduces your search to the top runners.

Linux device drivers

book coverLinux device drivers / Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, O’Reilly, 2005

If you are doing some kernel programming, this book is one of your most important resources. They joke that this book is easier to read than the code, implying that the book is almost as hard to read as the code. But you will want to read the code, because the rules for driver design change often. The authors are in the kernel inner circle.

Read it online here. Or here.

Linux TCP/IP networking for embedded systems

book coverLinux TCP/IP networking for embedded systems / Thomas F. Herbert. Charles River Media, 2007

Find out how the TCP/IP stack is implemented in Linux. This book is for the kernel hacker, not the applications programmer. Not an easy read, but much easier than learning from reading the networking code.  The title is misleading, because you don’t need to be working on embedded systems to make good use of the book.