The Linux Programming Interface by Michael Kerrisk; O’Reilly Media
The Linux Programming Interface is a very extensive tome on the ins and outs of the Linux (nay Unix) system programming interfaces, from the maintainer of the Linux man-pages project. The book covers everything from the a.out (assembler output) format to zombie processes.
At more than 1500 pages long, it is not a book to read from cover to cover. As each chapter is fairly self-contained and covers a single topic thoroughly, I recommend diving into the book every time a topic tickles your fancy.
You stand much to gain by reading about a topic in the book rather than perusing man pages. For instance, the topic on processes shows where the environ global variable points to in a process’s memory layout, describes the environment list data structure, and presents an example showing how to access the environment variables. Much more than you get from “man environ” on the command line.
The book’s 64 chapters cover every Linux programming topic I can imagine. Its breadth does mean that it is shallow on some occasions. I have had need to use, and blogged about, TCP keepalive before, a topic that does not occur in the book. To its credit, it is peppered with references to other books and articles that cover a topic in depth.
Definitely a book I’ll dive into every time I need to use a Linux programming interface I have never used before. I thank O’Reilly media for providing me the e-book to review.