Well written and comprehensive, this book explains complicated topics such as signals and concurrency in a simple, easy-to-understand manner. The book offers an abundance of practical examples and exercises. This book is comparable to other best-selling UNIX books, such as UNIX Network Programming, by Richard Stevens. Covers fundamentals, asynchronous events, concurrency, and communication. For programmers in need of a better understanding of UNIX systems programming.
If Stevens is the Old Testament this book is the New Testament.
I was thinking lately what it is about Stevens books that has made them the best material in the industry for the past decade. I cant really nail it, if I could I would have been an author myself and make millions, but the other day it suddenly hit me: When I read Stevens books sometimes a question arises and then I pause to think about it, only to turn the page and find the answer witinf for me. It is about being comprehensive, it is about covering all aspects of the topic, thinking forward on behalf of the reader, thinking what the reader may not understand and how to make it clear.
Well Robbins and Robbins belongs to this category of books.
I am a book maniac and I have most of the Unix/Linux programming books out there. This is by far the best systems programming book available.
The other day I had to look up about asynchronous i/o in Linux and its interaction with POSIX real time signals. Opened the book, read the example, downladed the source code, in an hour I was flying and writing an asynchronous web server in Linux.
For the networking stuff I never bothered to read the relevant chapters of the book since Stevens Network programming is the book I was trained by and it is still relevant.
For my threading needs I used to use Butenhof's "Programming with POSIX threads", but this book has great examples and I learned a lot by browsing it. I mean I had a question about signal interaction with threads and the book had a section about it. Come on, it has saved my butt many many times. It is very comprehensive.
I wholeheartedly recomend it to any serious systems programer, beginner or advanced.
tonatiuh
---
Excellent starting ground to do Unix Programming
I used this book to start to learn from scratch how to programming Unix. This book is self-contained,concise and easy to read. FYI, it is very readable and not dry. There's a number of good diagrams, for example,illustrating file descriptors allocations and the effects of system calls like dup2, etc. The authors uses short code snipplet to illustrate how to use a particular system calls, which I think is rather neat. A number of "projects" very quickly help reader to expand their skill level. Of interest is also a project on distributed "Richard" and "Linda" , the forerunner of Sun's JINI. The authors could have expanded this book another 100 pages and make it a companion to Steven's "Advanced Unix System Programming". I strongly recommend this book to beginners, intermediate Unix Programmers.
B. K. Lau
---
My eyes are open, my jaw has dropped
I happened upon this book... while researching System V Semaphores for a perlscript I was designing. I'd read the man pages and google'd about a bit, but still hadn't found anything to dispel the fog or give me confidence that I was heading in the right direction.
Then I found 'Practical UNIX Programming;, and called off the dogs. Entombed within this wonderful tome was the lucid explanation and insightful discussion I craved, and practical examples as well!
I would have been content to pay full-price for just chapter 8 and the fetching book spine. And yet I quickly found that every chapter was interesting and meaningful. I'd never had much interest in UNIX programming (as I fancy myself a pure Oracle/Java developer), but was immediately ensnared by the clear writing style and pithy content. I couldn't wait to finish the book.
Now that I've finished the book, I must admit I haven't found a novel so enjoyable since reading Robert Jordan's Shadow Rising. And in contrast to completing a book from the Wheel of Time series, this been an empowering experience. I'm eager to apply my newfound understanding and apply the knowledge gleaned.
So anyway, I'll end this long-winded missive with a big thank you to the authors for forging this gift to humanity.
Brian Donaldson
---
A very good book on UNIX System Programing
This is the updated second edition that includes all-new chapters on the Web and multicast and a completely revised and updated RPC chapter. Other book chapters on files, signals, semaphores, POSIX threads, and client-server communication were updated and enhanced.
The book is organized twenty-two chapters grouped into four parts. Each part contains topic chapters and project chapters. A topic chapter covers the specified material in a work-along fashion. The topic chapters have many examples and short exercises of the form "try this" or "what happens if". The topic chapters close with one or more exercise sections.
What I liked about the book is that it provides programming exercises for many fundamental concepts in process management, concurrency and communication. These programming exercises are very similar to the exercises you would be doing in a traditional computer science laboratory as part of an operating system course, for instance. Exercises are specified for systematic development, and many can be implemented in under 100 lines of code, which is nice if you want to play with it and experiment different ways of implementing a functionality.
Another important feature of the book is the compliance with the POSIX standards. Since the last edition of the book, a single UNIX specification has been adopted and it is referred to in the book to as POSIX. The authors' examples comply with the POSIX standard.
Something else I really liked is the kind-of support available. The book has its own we site where you can download all the code in the book and email the authors and so on. Check it out at: [...] The book basically covers whatever we need know to be able program with threads, TCP/IP, and RPC. The authors explain the essentials of UNIX programming, concentrating on communication, concurrency, and multithreading techniques and why, when, and how to use them in a very tutorial-way using a lot of reusable source code examples that explain syntax along the way.
A nice feature of the book is that it shows how to design complex software to get the best from the UNIX operating system. There are many short examples featured throughout the book and a number of hands-on projects that help readers expand their skill levels. The approach is very practical and uses short code snippets to illustrate how to use system calls.
The book is easy to read and the code examples are complete so that you can compile and run them. This is a nice feature since these exercises and code examples help readers understand and learn the material explained throughout the chapters.
If you want to:
a) Learn UNIX system programming essentials with a concentration on communication, concurrency, and multithreading techniques, with extensive hands-on examples that respect the single UNIX specifications ...
b) Write "correct" code and get the best from your UNIX operating system ...
c) Expand your ideas on how to design and implement robust UNIX software ... then, check out this book...
---
A must have for every system programmer
Initially, I purchased the book to study systems programming on Unix in a systematic way - I have been coding on Unix all my career - but wanted to organize it a bit.
The book proved instrumental - I ended up learning lot more than just organizing my current knowledge. Learned about PVM, concurrency and communication protocols ground up.
The most powerful tool the authors present are the exercises where the objective is to build an industrial grade application from scratch and they walk you through the process of thinking in terms of the functionality available on Unix.
I wish I read this book lot earlier than I did!!
---
It's a lot more than just concurrency - it's the best introduction to C i've seen.
This is an awesome book. You'll have to be patient when going through it. And you'll learn a lot if you follow along with the examples and make everything work. It took me probably 6 hours just to get through chapter 2 - not because I can't read, but because I'm paying attention to every little detail, and making sure I learn what's going on.
The other thing that came as a big surprise, was that this is the best introduction to C i've come across.