Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
49 used & new from $11.99

Have one to sell? Sell yours here
 
   
Advanced UNIX Programming (2nd Edition) (Addison-Wesley Professional Computing Series)
 
See larger image
 
Tell the Publisher!
I’d like to read this book on Kindle

Don’t have a Kindle? Get yours here.
 
  

Advanced UNIX Programming (2nd Edition) (Addison-Wesley Professional Computing Series) (Paperback)

by Marc J. Rochkind (Author)
4.8 out of 5 stars See all reviews (18 customer reviews)

List Price: $59.99
Price: $43.99 & this item ships for FREE with Super Saver Shipping. Details
You Save: $16.00 (27%)
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Tuesday, July 14? Choose One-Day Shipping at checkout. Details
29 new from $28.85 20 used from $11.99
Also Available in: List Price: Our Price: Other Offers:
Hardcover 6 used & new from $11.23
Paperback (United States Ed) 49 used & new from $0.01

Special Offers and Product Promotions


Frequently Bought Together

Advanced UNIX Programming (2nd Edition) (Addison-Wesley Professional Computing Series) + Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series) + C Programming Language (2nd Edition) (Prentice Hall Software)
Price For All Three: $136.56

Show availability and shipping details


Customers Who Bought This Item Also Bought

UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition) (The Unix Networking Reference Series , Vol 2)

UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition) (The Unix Networking Reference Series , Vol 2)

by W. Richard Stevens
4.4 out of 5 stars (11)  $62.78
Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition) (Addison-Wesley Professional Computing Series)

Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition) (Addison-Wesley Professional Computing Series)

by W. Richard Stevens
4.8 out of 5 stars (25)  $60.79
UNIX Systems Programming: Communication, Concurrency and Threads

UNIX Systems Programming: Communication, Concurrency and Threads

by Kay A. Robbins
4.3 out of 5 stars (24)  $64.59
The Art of UNIX Programming (Addison-Wesley Professional Computing Series)

The Art of UNIX Programming (Addison-Wesley Professional Computing Series)

by Eric S. Raymond
4.2 out of 5 stars (36)  $40.45
Programming with POSIX(R) Threads (Addison-Wesley Professional Computing Series)

Programming with POSIX(R) Threads (Addison-Wesley Professional Computing Series)

by David R. Butenhof
4.4 out of 5 stars (24)  $48.34
Explore similar items

Editorial Reviews

Product Description
The changes to UNIX programming that have taken place since 1985 are extensive to say the least. The first edition of Advanced UNIX Programming is still used and considered to be a must have book on any UNIX programmer's shelf. With this new edition UNIX programmers now have a one-volume, comprehensive, in-depth guide to the essential system-level services provided to them by the UNIX family of operating systems - now including Linux, FreeBSD, and the Mac OS X kernel (Darwin). All UNIX application programs, regardless of what language they are written in, run on top of these services, so mastering them is essential for successful UNIX programming. And, with a movement towards open-source systems, programmers will appreciate the book's emphasis on portability.

From the Publisher
A comprehensive examination of UNIX® system calls--the interface between user programs and the kernel. --This text refers to an out of print or unavailable edition of this title.

See all Editorial Reviews

Product Details

  • Paperback: 736 pages
  • Publisher: Addison-Wesley Professional; 2 edition (May 9, 2004)
  • Language: English
  • ISBN-10: 0131411543
  • ISBN-13: 978-0131411548
  • Product Dimensions: 9.1 x 7 x 1.1 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.8 out of 5 stars See all reviews (18 customer reviews)
  • Amazon.com Sales Rank: #216,820 in Books (See Bestsellers in Books)

    Popular in this category: (What's this?)

    #11 in  Books > Computers & Internet > Programming > APIs & Operating Environments > Unix

Citations (learn more)
1 book cites this book:


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below.
(5)
(1)

Your tags: Add your first tag
 
Help others find this product — tag it for Amazon search
No one has tagged this product for Amazon search yet. Why not be the first to suggest a search for which it should appear?

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

 

Customer Reviews

18 Reviews
5 star:
 (14)
4 star:
 (4)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.8 out of 5 stars (18 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
28 of 28 people found the following review helpful:
5.0 out of 5 stars Required Reading for UNIX developers, August 6, 2004
By ART SEDIGHI (Old Bethpage, NY United States) - See all my reviews
This book is truly exceptional - it covered the UNIX programming environment from beginning to the end very well. Marc Rochkind has done an amazing job updating his classic book.
A brief history of UNIX and a history of various UNIX standards such as POSIX, SUS and pretty much all the others plus a 30 minute crash course in the underlying structure of UNIX get the readers going. If you are anything like me that hasn't as much a thought about how process ID's are used and the creation child processes and how permission plays a role in process creation, you will enjoy this section. I learned that its one thing to "use" UNIX, and another to really understand it deep down. The standards that are out there really throws you off though as there are so many of them. How and which one to choose? It gets rather complicated. Marc spends the first section talking about all the difficulties of "choosing a standard", and then gives you a header file that you can plug into your code and off you go. I was pleased by that. I have already started using that header file in my code and I find it rather useful.

Starting from the basics of files and file access, every one of the function calls are depicted in full and example is given for each one of them. This book is like a big "how-to" notebook that one can pick and choose what to read where to get valuable information from as one needs it. Another thing that the author does throughout his book, which made me very happy, was the little tables of "stats comparisons" between the various options and settings that were just discussed. No more guessing games as to what to expect or what to test. It's all right there. I know, for example, that blocked-sized I/O of 512 bytes takes less than a second to complete versus 223 seconds when a character at a time is read. You might think that this information is rather trivial, but do you know the difference in the time that it takes to access data stored in a regular file versus data stored on a raw disk device?

Accessing the terminal can get rather complicated with all the options available, and I didn't know was how much more complicated this matter gets due to the relations that terminals have with sessions and process groups. Process group, session leader, process-group leader and the controlling process could make you life as a programmer very difficult if you don't know how they inter-relate. The power of UNIX comes in a box - you have to open it to see inside, but be very prepared before you open up that box.
If you have done any network programming if your life, you want to know the details and options that are available to you if you are using "select" or "pselelct". What the timeout options are, and how you can use the "poll" system call to achieve the same task as "select", but more efficiently at times.

Threads, Processes and their inner workings are covered extensively in this book, as one would assume. The difference in this author's explanation of these two topics is the presentation. The author in talking about these topics, and everything else from here on, builds a fairly complete command interpreter! Starts rather small, but by the end of the book, it is a full blown UNIX like CLI with pipelines, background processes, quoted arguments, handling of I/O redirection and accepting of environment variables. Processes and threads start the discussion with "fork", "exec" and other similar and related function calls. A great deal of time is spent talking bout these two rather important calls, and how they are used, options, inheritance of those options, and programming hints and examples for each one of them. Threads and synchronization of threads via mutex and conditional variables are the next topic if discussion. Threads could get a bit more complicated, so you should spend a bit more time reading this section. The author starts you of easy though. No mutex or race conditions are considered at first. It then gets rather interesting with the various race conditions that the authors has the reader think thru.

Communication between threads processes have always been an interesting topic to cover. Pipes, names pipes, shared memory and sockets. Pipes are rather easy. They have their limitations, which are discussed in full, but they are rather easy. Names pipes (queues) and unidirectional pipes get the reader going, if you have not done any Interprocess Communication before. Even if you have, it's good to revisit something that is not really used these days. Messages, semaphores, sockets and shared memory are covered in a great depth by the author. What I absolutely love about this book comes in these later sections of the book. Marc, in depicting these topics and sections builds, from scratch, what could essentially be called a middleware - Simple Messaging Interface (SMI) he calls it.

SMI is probably one of the best book examples I have seen. Besides the fact that it is very useful and practical all into itself, it also promotes good network programming practice. SMI is first implemented with Names Pipes or FIFOs, then using Message Queues, then Semaphores and finally via Shared Memory. Very well done Marc. If that's not enough, all of the implementations are compared with each other, and pros and cons of each one is given to aid a developer or a designer in choosing the right methodology.

The Simple Socket Interface is the Socket implementation version of the SMI. Again, very well done and prescribed by the author. Besides being very good teaching tools, they are also very practical and useful; something that we are should have in our toolbox.

I highly recommend this book to any developer; designer or an architect as it is very good teaching aid for all.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
25 of 27 people found the following review helpful:
4.0 out of 5 stars Technical excellence; worth owning, July 7, 2004
By W. Jim Jordan (Calgary, Alberta, Canada) - See all my reviews
(reviewed for the Calgary Linux Users Group Guild)

There is a saying which goes, "UNIX is user-friendly; it's just picky about who its friends are." Upon reading Advanced UNIX Programming, I get the impression that Marc Rochkind may at one time have been a close friend of UNIX, but having become a little disillusioned by what UNIX has become in the 19 years since his first edition, is willing to settle for being a calm, professional acquaintance. His opening chapter provides two main reasons why this has happened: first, the UNIX kernel has grown from providing 70 or so system calls, to over 600 for an implementation that provides Single UNIX Specification and POSIX compliance; and second, there are so many flavours of UNIX out there (including Linux) that none of them implement exactly the same set of system calls. Thus the increasing complexity and diversity of UNIX implementations makes it difficult to know all that can be called UNIX intimately. Rochkind's book presents enough material to make the reader an acquaintance, leaving the building of a friendship as an exercise for the highly committed.

Rochkind makes a careful selection of just over 300 of the most important system calls and groups them into a handful of broad topics: I/O (file and terminal), processes and threads, inter-process communication (including sockets), signals, and timers. He takes great care to highlight what is available in Solaris (version 8), Linux (SuSE 8), BSD (FreeBSD 4.6), and Darwin (6.8; MacOS 10.2.8), and how to write something that has a hope of running on all of them. The system calls he describes are the ones anyone writing UNIX applications must know about. That is his target audience, and he meets that target squarely. If you are not already a C programmer and UNIX user, this book will not be useful for you.

The book contains exercises and several code samples. Some of the larger chunks of code implement a simple shell, an HTTP client, and a full-screen text-mode menu system. This is not trivial stuff; it is reflective of the title, and demonstrates in a short space how to put the kernel to use. Rochkind also includes some example code that should work, but will not, just to illustrate that things are not as simple as they could be. He then walks the reader through the necessary corrections, bringing enlightenment as he goes. Each chapter contains this mix of tutorial material, useful to those who are starting to explore the UNIX kernel and how it can serve their applications, and reference material, useful to those looking for the bit of wisdom a man page cannot provide, but years of experience can.

Rochkind also buries some treasure in the appendices. While his examples are all written in C, since this is the natural language for UNIX programming, he acknowledges that not every program that uses the UNIX kernel is going to be a C program. He describes two downloadable class libraries that map most of the UNIX kernel calls to objects and methods. These allow folk who prefer object-oriented languages to use the kernel without doing violence to their programming paradigm. Ux is a C++ wrapper, and Jtux is a Java wrapper that also works with Jython.

As one might expect, Advanced UNIX Programming contains an extensive bibliography and reference list. If you had all of the works and resources he lists on your shelf, the body of his book would be superfluous. He has distilled things well.

There are two technical things that I found missing from the book. The significant one is a discussion of how to deal with multiple processors, particularly around semaphores and other kinds of locks. This would be a valuable addition to the chapter on inter-process communications, especially now that these machines are becoming more common. The second, and by no means serious, omission is actually one that arises because of what he does include in an appendix: if he can describe a Java class library, why not make a reference to a set of Perl modules, too?

So why do I rate this book as less than outstanding? Well, one reason is a matter of taste. I am not a fan of C preprocessor macro functions, but Rochkind makes heavy use of them in his examples to simplify error trapping and reduce the volume of code that had to be printed. This forced me to read code in a different way than my colleagues and I write it. I found it awkward to pick out the particular system call being used when it was coded as a parameter to a macro. The second is that I found his treatment of signals to be confusing. Admittedly, signal handling is not simple (and the newer signal-handling calls do little to help), but the chapter on signals felt like it was rushed to completion to meet the publication deadline. I read that chapter twice, and am still scratching my head. Add a handful of typographical errors to these irritants, and I wound up with a book that was not a joy to read straight through, but a chore. I will still use the book as an occasional reference, reflecting the comfortable professional relationship, but not intimate friendship, I have with UNIX, and maybe I will learn more on a subsequent reading.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
8 of 8 people found the following review helpful:
4.0 out of 5 stars Very good starter book, October 27, 1998
By Paul Tomblin (Rochester, NY) - See all my reviews
(REAL NAME)   
I found this book an excellent introduction when I first started doing network programming, sockets, signals, and threads in a Unix environment. After a while, though, I needed more detail and bought the excellent Stevens book "Advanced Programming in a Unix Environment". I would heartily recommend both books, this one to get you into it, and the Stevens book as the hyper detailed reference.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

5.0 out of 5 stars THE book to get for UNIX programming
I am a systems administrator professionally, but I have a need to know the inner workings of UNIX that only seems to be covered in programming books. Read more
Published 14 months ago by H. E. Paul

5.0 out of 5 stars Informative
The book is good for beginners. All you need to know to get started with Unix/Linux programming.
Published 19 months ago by Son-huy A. Pham

5.0 out of 5 stars A very useful reference
I bought this book in order to get an overview on what primitives I have available on a unix system for doing system programming. Read more
Published on January 23, 2007 by Shlomo Yona

5.0 out of 5 stars The best UNIX programming book that I know of
What's more to say, the title say's it all... Buy it!
Published on February 16, 2006 by William Sturm

4.0 out of 5 stars Good Coverage
This is an exceptional introduction to Unix features that most people won't see in every-day programming. Read more
Published on January 28, 2006 by wiredweird

5.0 out of 5 stars Just right
This book starts at the beginning, assumes very little, and takes you quickly to the essentials you need to know about unix. Read more
Published on April 9, 2005 by Unknown Comic

4.0 out of 5 stars Finally - Very Updated!
In 1987, I encountered the first edition of Rochkind's book. Grew to depend on it as an authoritative discourse on serious unix interprocess programming. Now (finally! Read more
Published on May 23, 2004 by W Boudville

5.0 out of 5 stars A must have
I also have the first edition (and a previous book) and am an unabashed fan of Marc Rochkind's.
What this book promises and delivers is a catalog and explanation of Unix... Read more
Published on May 17, 2004 by P.Hertel

5.0 out of 5 stars The Other Reviews Are OLD
The reviews posted under this title refer to the first edition of this book.
This is the long awaited and updated second edition which isn't even in the stores yet! Read more
Published on April 30, 2004 by P.Hertel

5.0 out of 5 stars Highly Informative
You should be familiar with general UNIX commands and the UNIX OS. This text will take you help you take advantages of the UNIX system. A lot of complex ideas are set forth. Read more
Published on May 31, 2000

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
New! See all customer communities, and bookmark your communities to keep track of them.
This product's forum (0 discussions)
  Discussion Replies Latest Post
  No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]


Active discussions in related forums
  Discussion Replies Latest Post
Textbooks for Kindle DX? 34 19 hours ago
C# or Java? 32 5 days ago
Does anyone use Discovering Geometry: An Investigative Approach? 3 12 days ago
   


Product Information from the Amapedia Community

Beta (What's this?)



Look for Similar Items by Category


Storm Warning

Black & Decker Storm Station
Buy the Black & Decker Storm Station--an all-in-one emergency power source, radio, and flashlight--for the unbelievably low price of $119.99.

Shop the Power Tools Store

 

Best Books of 2008

Best of 2008
Find our top 100 editors' picks as well as customers' favorites in dozens of categories in our Best Books of 2008 Store.
 

Buy Three Books, Get a Fourth Free

4-for-3 Books
Order any four eligible books under $10 and get the lowest-price book free in our 4-for-3 Books Store. See more details.
 

Best Books

Best of the Month
See our editors' picks and more of the best new books on our Best of the Month page.
 

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Where's My Stuff?

Shipping & Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue shopping: Top Sellers

Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates