Home - APIs & Operating Environments

Product Details

Binding:

Paperback

EAN:
Label:

Prentice Hal, Inc,2008 2nd (Second) Edition

Feature:
Publisher:

Prentice Hal, Inc,2008 2nd (Second) Edition

Studio:

Prentice Hal, Inc,2008 2nd (Second) Edition

Editorial Reviews

Customer Reviews

It's a must-have book for me. Having a previous edition already available, I've bought the second one - quite a bit of new Unix releases appeared since I've got the first edition, so, time to get up-to-date, especially taking into account Linux and Mac OS details available in a second edition.
The book evolved from its first edition and its definitely a mammoth task trying to keep in this edition what is relevant and what isn't but i think the authors did it :)

If you want to be a UNIX Guru, then this is definitely the book for you :)
This book is literally saving me right now in an Introduction to Operating Systems class I'm taking. We have projects to complete in the UNIX envrionment and the fact that this book gives you every real code example you could possibly need for all levels of systems programming is GOLD. It's laid out in a very straightforward way, has tons of code examples, and is overall awesome. Highly recommend if you're just getting into systems programming on your own, or as a school reference book.
This book is a classic and remains a very valuable conceptual guide. While the text seems to be up-to-date, the accompanying code suffers from the age of the environment in which is was originally written and has not been ported to Linux. I write this review from the Linux point of view as I am not programming in the Sun or BSD environment.

I purchased the book with the idea of learning pty programming for Fedora. While the chapter was very informative in its discussions, using the man pages is required. As the source code accompanying the book doesn't address Linux, per se, and one may be tempted to use the apue.linux3.tar.Z download with its Red Hat port of the common library. Downloading it may be helpful, but the added code was written for Red Hat 6 and the book is newer than that. Specifically, the pty open code was not functional and I reverted to the svr4 code which still needed tweaking.

Some of the original sample code is architecturally out of step with the current way of doing things. For example, originally ptys were found by canonically generating all pty names until one could be successfully opened. The sample code is written to return the successfully generated name. The current method in Linux (and elsewhere, I suppose) is to open("/dev/ptmx") and then call ptsname(). So plan on using this to study and then writing your own more modern code or tweak the sample code as needed. Of course, one of the goals of the code is to create a portable library to support various *nix flavors, so this criticism may be overstated.

Still, it seems a thorough modernization of the sample code would have made this book more valuable. But as I said, I am not programming in the Sun or BSD environment.
I occasionally need to fix broken IPC code and figure out behavior differences
of legacy code between Solaris, Linux, etc., code written years ago by somebody
else in C.

This book, (and Stevens' earlier books before this) has been immensely useful.
The code samples alone are worth their weight in gold :-). Seriously, this book
has saved me many days of hard work, several times over.

A quick browse of the book is usually enough to find the details (what I would
call 'arcane details', but I guess this is because I'm not an expert C/networking
programmer), figure out the problem AND how to fix the problem.

This book has been a 'project-saver'. I cannot recommend this text too highly.

Is it just me or did this book quintuple in size between the first and second versions. This book is now an almost thousand page hardback tome. But all that extra bulk is not a bad thing in this case. Each sub-system is now covered in amazing detail. The illustrations are fantastic. And the book covers the bevy of Unix variants which makes it extremely valuable. Definitely a must have second edition for any programmer whose primary platform is Unix.
Its a very extensive book that covers concepts and advanced features of UNIX. It covers UNIX implementation of different features as a user point of view and how to access diffent services of UNIX like OSs. If you want to learn UNIX /Linux based programming this book a must read & must have for reference. I highly recommend this book
This text book is easy for anyone who study about computer directly and has some experience with Linux. It give you both of knowlege and C source code example.if you want to know about Unix and others unix-based operating system, I recommend it.
Two things I like about this book are

1. The book focuses heavily on standards and portability. Throughout the book, API and implementations are described according to the SUS or XSI standards. However, to book maintains a firm grasp on reality by tracking 4 real Unix-like systems, Solaris, Linux, Mac OS X, and FreeBSD throughout and noting implementation specific exceptions and extensions where applicable.

2. A lot of illustrative example code is included. In some cases API functions are re-implemented to make it clear exactly how it works.

APUEv2 reads quite easily as a beginner's introduction to programming in the Unix environment. However it also includes a great deal of tables, charts, and figures to make it suitable as a reference for the more experienced programmer, useful as a back-up in case the local man pages are not available.

As mentioned in the foreword, readers should be comfortable with the C language itself before attempting to dive in to Unix programming.
If you are a serious Unix Systems Programmer or just learning to program on the Unix platform, this is the book you need. It is the bible of the Unix API. The 2nd edition covers all relevant topics and more. I reference mine so much it is starting to show some wear. It is a classic.
The explanations are very good
Very good examples (you can find the codes online)

A lot of proffesors recomended this book
nice, old school manual.
it is priceless for any Unix programmers.
many thanks to Stevens and Rago.
Despite of the book's size I have read more than a half in a short period of time. This book can be used as a reference and a textbook.
Three years ago, this second edition was released in hardcover. A worthy and needed updating of the first edition. Now this paperback edition is made available. The cheaper cost will benefit some readers. Its reputation as one of the standard unix texts means that many unix and linux programmers need it in their workplace. But possibly the cost of the hardcover version was a deterrent.

Meanwhile, I reproduce my review of the second edition, hardcover, from 2005, below. My remarks in it still stand.

===========================

Many of you who learnt unix in the 90s would have cut your teeth on the first edition of this book. This second edition should be well received. It encapsulates the changes in the unix world since 92. Most importantly, it shows the rise of linux. A rise that is still unabated.

Broadly, the structure of this edition matches the first edition. Rago was brought in as co-author after Stevens died in 99, and he has deliberately kept this consistency. I was glad to see that Rago kept the exercises at the end of each chapter. Many computer books seem to dispense with this, which can be a pity for anyone who needs hands on tasks to learn from.

The threading chapters are a significant change from the first edition. Not simple reading, but they do reflect powerful ways to possibly optimise your code. The biggest cost for you may be the effort you need to invest in understanding the coding issues in these chapters. Rago's code examples are deliberately short, and necessarily somewhat artificial. But they do demonstrate well the various threading issues.

Of course, other chapters have had minimal alterations. How much have terminal I/O or pseudoterminals changed in 10 years? Those chapters may be old friends to you.
This book is a fantastic starting point in life. Some how our public schools over look teaching the fundamental skills presented in this book. We learn how to play with toys on simple computers and never really learn what we are doing.

The real strength of this book is in the definitions. We get to see the purpose and flexibility of system calls and functions. Not just use them but understand them. UNIX functions as job control or signals are explained in detail. Let's take just one item "waitpid":

The waitpid function provides three features that aren't provided by the wait function.

You will have to red the book to find out what they are. However there are examples also. Now for people with real systems like AIX all you have to do is ad a "k" to the front of the call and you have the AIX kernel function call "kwaitpid"; voila you now have an understanding that can not be found clearly in a Red Book.

It does help some to have a preunderstanding of the system do you can use the book to fill in the education holes missed when necessary.

The index is worth its weight in gold as you can find functions headers and concepts all in alphabetical order. My favorite is the definitions.

As much as I am a fan of the internet it also pays to carry the information in the form of a book. And all this book has to do is save a couple of hours and it has paid for its self.

Mastering UNIX Shell Scripting
Everything you wanted to know (and probably didn't care to know) about linux.
The only drawback are some of the builtin functions that he uses. These are usually uppercase modifications of the lower case functions. It creates one more step for the reader, if they don't want to use his builtin functions.
 
Share your thoughts with other customers
Create your own review