Customer Review

Reviewed in the United States 🇺🇸 on April 23, 2012
......because you never got a clear and useful answer

I am an embedded developer with 19 years experience and forever having had to deal
with UNIX derivatives either as cross development platforms ( Solaris, LINUX, QNX )
or as target platforms ( QNX, LINUX, Android ).

I managed to assimilate a lot of concepts and paradigms over the years both
during university training and later at work...some complicated some simpler.
I was always mystified by UNIX and LINUX and the way the so called 'gurus' loved
to throw around their 'file-this....' 'file-that...' 'slash-this..' 'slash-that...'
jargon at you.

'Consulted oodles of books to make sense of all the various concepts and build
my mental UNIX knowledge tree....alas with mixed success...just when you thought
you understood...came along another surprise..."Uhm...well its not quite like that ..."

Until I came along this title. Simply put the author 'knows' what he is talking
about ...Not only that....the author 'knows' HOW to impart that knowledge to you
the reader and finally and most importantly ...
...the author must have had the burning desire to impart his knowledge to teach
and to hold nothing back...no secrets...no caveats.

Everything worthy of knowing about programming 'NIXes and LINUX in particular is
summarized in this work as best as would be humanly possible.

What is nice about this tome is that it doesn't stop there, it actually takes
you under the hood and shows all the secret ins and outs and details the kind of
`implied` know-how that makes UNIX and LINUX experts look like masters of the
black art of UNIX magic.

In short to continue borrowing metaphors from the world of Magic, Michael Kerrisk
might have broken a Tapu ( by revealing all the trade secrets ) and made himself `unpopular`
within the trade...( just kidding! )

I read quite a few books on the internals of the LINUX kernel, some better
than others BUT I was surprised to find in this book answers to the many questions
I had about the kernel space side of 'NIXes and LINUX in particular.

That was not what I was looking for when buying and reading this book.
I was simply looking for a reference to help me with the task of writing software for
an embedded application, BUT surprisingly, along the way I finally got to build my
own mental UNIX / LINUX knowledge tree.

Like for example
* what those 'fd' are really about...
* how and ( more importantly ) why 'open()', 'read()' and other file-IO calls
behave differently in various situations and with various drivers and the
semantics that goes with their use in these situations.
* all the details about i-nodes and what they do in a file system.
* the user-space kernel-space split even down to the assembly level details of
entering the kernel-space and leaving it again during a system call.
* .....
* .....

It's all there and more....all presented with a didactic prowess and quality that
is typical of this book throughout. Michael Kerrisk wants to make sure that you
understand and that you have a minimal number of surprises and gotchas on your way
to learning the nuts and bolts of a 'NIX box.

Things like inserting a little note, warning readers on how to verify the author's
explanations on the differences of 'read' versus 'execute' permissions on
directories...sorry Mr. Kerrisk I had to find out the hard way 'cause I didn't
read or look carefully enough otherwise you were telling me that:

"If experimenting to verify the operation of the directory read permission bit,
be aware that some Linux distributions alias the ls command to include flags
(e.g., -F) that require access to i-node information for files in the directory...."

All in all a great book. There are of course some minor issues such as typos etc.
but I'm going to assume a 7 star rating and deduce two stars for the typos so that
the result is the 5 stars above.
6 people found this helpful
Report abuse Permalink