Review of the book
Self-Service Linux(R): Mastering the Art of Problem Determination
by Mark Wilding, Dan Behman
Publisher: Prentice Hall PTR (September 19, 2005)
ISBN: 013147751X
(long review)
I have just finished reading through the book Self service Linux from Wilding & Behman.
Let me point out, that when I read the description first I thought
that it would be a troubleshooting & performance tweak guide.
However when I read through the first chapters I believed hat the
title should say "Troubleshooting (GNU) Linux using Compiler and
Debugger".
Finally after I read the whole book I decided the book deserves a different title something like
"The high art of problem investigation and software debugging". - I explain why below.
O.k the title issue out of the way lets focus on the contents of the book.
Table of Contents
Preface.
1. Best Practices and Initial Investigation. - (40p)
2. strace and System Call Tracing Explained. - (50p)
3. The /proc Filesystem. - (30p)
4. Compiling. - (30p)
5. The Stack. - (40p)
6. The GNU Debugger (GDB). - (80p)
7. Linux System Crashes and Hangs. - (20p)
8.: Kernel Debugging with KDB. - (10p)
9.: ELF: Executable and Linking Format. - (85p)
Appendix A: The Toolbox. - (13p)
Appendix B: Data Collection Script. - (12p)
Index. - (10p)
You can already conclude just by looking at the TOC that most is compiling and debugging related stuff.
So to make it clear, this book is NOT for the faint hearted neither
is it for beginners. It is for the professionals class room, Power
users,
Sysadmins, engineers etc. which either have 3-5 years Linux
experience, are in need of a thorough understanding or are looking into
developing software.
This is also backed by the fact that Wilding has 15 years experience writing software and Behman 10 years
experience with (GNU) Linux alone.
Now, if you think 10 years back (1996) you will probably remember that GNU Linux was not that major yet.
So you can assume that Wilding and Behman carry "some" pioneer spirit which is reflected in their book all the way by
the rich details in every single chapter.
The book doesnt loose a lot of time and explains in Chapter 1 (The Intro) an overview of the investigation methods
and also spends an extra 10 pages for the symptoms versus cause explanations with its possible solutions.
That described experience alone can be an invaluable and a BIG timesaver.
If I may make a recommmendation: Make sure you read Chapter 1 thoroughly and DONT SKIM OVER IT !!
I made the mistake and skimmed over it. Almost at the end of the book I realised that many of the questions that
came up for me where caused by not having read the first Chapter thoroughly enough.
Having never done an strace before I found the strace chapter to be
very detailed *almost a bit overwhelming for a second chapter.
Developers and senior IT professionals might feel here right at
home. I found that the book is overall very detailed and contains so
much information that I have
to admit I did not crasp all on the first read ;-). Especially the
chapters about Compiling, the GDB and ELF are incredible detailed
and very thoroughly describe many steps which are absolutely necessary investigating software issues.
It is this thoroughly prepared "learned lessons" which the authors describe which makes the book so valuable.
Many people out there may have some experience with debugging and compiling and the typical three commands
"configure or make config, make and install", may have read the one or the other howto.
It is this book which takes those bits and puzzle peaces and allows you to put it together to see the whole picture
of how the software stuff works on the inside of your box.
Instructors and Teachers might use the book for prepareing tutorials and howto*s for classrooms or study courses.
There is enough info inside to make lots of them. It is also a very nice self study book.
The book is very readable, which is especially surprising considering the complex topics Wilding and Behman
are takling.
I personally enjoyed most the chapters about the /proc filesystem and the ELF. However I have to admit that ELF
(the default format for shared libraries and executables) is by no way a simple topic and I had to take a break several times in
order to be able to stay focused and remind me where I am. f.e. In the ELF chapter Wilding and Behman describe 17 of 29
Section names and types * which is a lot *.
They do not only describe their functions, but also their
correlations and their importance in the debugging process. A this isnt
enough,
Wilding and Behman step you through several debugging process and
documented almost each single step I could think of - a gesture
which is very helpful, not only for beginners. They also explain
the symbol resolution thats going on internal of the ELF files.
Finally they even explain 2 interception methods, including one
showing you how to attach to a running process and debugging it !!
I could feel that this book is written with a lot of passion for a
great topic. This is not only a compliment for the authors but also for
the team behind the book.
The book is a VERY VALUABLE CONTRIBUTION - not only but - especially for junior members in the open source community.
I also believe that it is a very nice text for the classroom or selve study courses.
If you read until here, chances are high that you will like the book.
Summary:
Its nice to see such a thoroughly prepared text about compiling and debugging which is so readable.
The book allows anybody who has read a few howto's and was
wondering how this all relates to each other, to finally get the big
picture.
On top of it, Wildman and Behman put a lot of "best practices" tips and advices in the book.
Soo, to sum it up in one sentence:
FINALLY an easy understandable and very readable book about
debugging and compiling. If you want to get only one book about
compiling and debugging, this is it !
Note: This review was edited to remove some mispellings, however if
you still find any typos in the text - keep them, I usually have so
many lieing around that I wont miss a view more or less of them ;-)
This review was also posted at: