Advanced Programming in the UNIX Environment (Addison-Wesley Professional Computing) Hardcover – 17 Jun 2005
There is a newer edition of this item:
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Would you like to tell us about a lower price?
If you are a seller for this product, would you like to suggest updates through seller support?
From the Back Cover
"Stephen Rago's update is a long overdue benefit to the community of professionals using the versatile family of UNIX and UNIX-like operating environments. It removes obsolescence and includes newer developments. It also thoroughly updates the context of all topics, examples, and applications to recent releases of popular implementations of UNIX and UNIX-like environments. And yet, it does all this while retaining the style and taste of the original classic."
--Mukesh Kacker, cofounder and former CTO of Pronto Networks, Inc.
"One of the essential classics of UNIX programming."
--Eric S. Raymond, author of The Art of UNIX Programming
"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the classic Stevens text while keeping true to the original. The APIs are illuminated by clear examples of their use. He also mentions many of the pitfalls to look out for when programming across different UNIX system implementations and points out how to avoid these pitfalls using relevant standards such as POSIX 1003.1, 2004 edition and the Single UNIX Specification, Version 3."
--Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group
"Advanced Programming in the UNIX® Environment, Second Edition, is an essential reference for anyone writing programs for a UNIX system. It's the first book I turn to when I want to understand or re-learn any of the various system interfaces. Stephen Rago has successfully revised this book to incorporate newer operating systems such as GNU/Linux and Apple's OS X while keeping true to the first edition in terms of both readability and usefulness. It will always have a place right next to my computer."
--Dr. Benjamin Kuperman, Swarthmore College
Praise for the First Edition
"Advanced Programming in the UNIX® Environment is a must-have for any serious C programmer who works under UNIX. Its depth, thoroughness, and clarity of explana-tion are unmatched."
"Numerous readers recommended Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley), and I'm glad they did; I hadn't even heard of this book, and it's been out since 1992. I just got my hands on a copy, and the first few chapters have been fascinating."
--Open Systems Today
"A much more readable and detailed treatment of UNIX internals can be found in Advanced Programming in the UNIX® Environment by W. Richard Stevens (Addison-Wesley). This book includes lots of realistic examples, and I find it quite helpful when I have systems programming tasks to do."
"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the original Stevens classic while keeping true to the original."
--Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group
For over a decade, serious C programmers have relied on one book for practical, in-depth knowledge of the programming interfaces that drive the UNIX and Linux kernels: W. Richard Stevens' Advanced Programming in the UNIX® Environment. Now, Stevens' colleague Stephen Rago has thoroughly updated this classic to reflect the latest technical advances and add support for today's leading UNIX and Linux platforms.
Rago carefully retains the spirit and approach that made this book a classic. Building on Stevens' work, he begins with basic topics such as files, directories, and processes, carefully laying the groundwork for understanding more advanced techniques, such as signal handling and terminal I/O.
Substantial new material includes chapters on threads and multithreaded programming, using the socket interface to drive interprocess communication (IPC), and extensive coverage of the interfaces added to the latest version of the POSIX.1 standard. Nearly all examples have been tested on four of today's most widely used UNIX/Linux platforms: FreeBSD 5.2.1; the Linux 2.4.22 kernel; Solaris 9; and Darwin 7.4.0, the FreeBSD/Mach hybrid underlying Apple's Mac OS X 10.3.
As in the first edition, you'll learn through example, including more than 10,000 lines of downloadable, ANSI C source code. More than 400 system calls and functions are demonstrated with concise, complete programs that clearly illustrate their usage, arguments, and return values. To tie together what you've learned, the book presents several chapter-length case studies, each fully updated for contemporary environments.
Advanced Programming in the UNIX® Environment has helped a generation of programmers write code with exceptional power, performance, and reliability. Now updated for today's UNIX/Linux systems, this second edition will be even more indispensable.
About the Author
We are deeply saddened to learn of the death of noted author W. Richard Stevens. His passing is obviously a tremendous loss for the technical community, but it is a personal one for us as well. Rich was both a gifted colleague and a valued friend who will be greatly missed. We extend our sympathies to his family.
Obituary from the Arizona Daily Star:STEVENS, W. Richard, noted author of computer books died on September 1. He is best known for his "UNIX Network Programming" series (1990, 1998, 1999), "Advanced Programming in the UNIX Environment" (1992), and "TCP/IP Illustrated" series (1994, 1995, 1996). Richard was born in 1951 in Luanshya, Northern Rhodesia (now Zambia), where his father worked for the copper industry. The family moved to Salt Lake City, Hurley, New Mexico, Washington, DC and Phalaborwa, South Africa. Richard attended Fishburne Military School in Waynesboro, Virginia. He received a B.SC. in Aerospace Engineering from the University of Michigan in 1973, and an M.S. (1978) and Ph.D. (1982) in Systems Engineering from the University of Arizona. He moved to Tucson in 1975 and from then until 1982 he was employed at Kitt Peak National Observatory as a computer programmer. From 1982 until 1990 he was Vice President of Computing Services at Health Systems International in New Haven, CT, moving back to Tucson in 1990. Here he pursued his career as an author and consultant. He was also an avid pilot and a part-time flight instructor during the 1970's.
He is survived by his loving wife of 20 years, Sally Hodges Stevens; three wonderful children, Bill, Ellen and David; sister, Claire Stevens of Las Vegas, NV; brother, Bob and wife Linda Stevens of Dallas, TX; nieces, Laura, Sarah, Collette, Christy; and nephew, Brad. He is predeceased by his parents, Royale J. Stevens (1915-1984); and Helen Patterson Stevens (1916-1997). Helen lived in Tucson from 1991-1997, and Royale lived here in the early 1930's attending Tucson High School while his father was treated for TB at the Desert Sanitorium (now TMC). The family asks that in lieu of flowers, donations be made in Richard's name to Habitat for Humanity, 2950 E. 22nd Street, Tucson, AZ 85713. A memorial service for Richard will be held at St. Phillip's in the Hills Episcopal Church on Tuesday, September 7th at 12:00 noon. Following the service there will be a reception in the Murphy Gallery of the Church. Please wear colorful clothing to the service; Richard loved colors.
W. Richard Stevens was an acknowledged UNIX and networking expert and the highly-respected author of several books. He was also a sought-after instructor and consultant.
Stephen A. Rago, one of the Bell Laboratories developers who built UNIX System V, Release 4, currently works as a manger at EMC, specializing in file servers and file systems.
Top customer reviews
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.
I've placed this book #25 in my Top 100 Programming, Computer and Science books list:
(If this link gets removed google for >>catonmat top 100 programming computer science books<< to find my article.)
First one needs to possess or build up a good knowledge of and ability at C (with books such as C Programming Modern Approach 2nd or Programming Language 2nd Brian Kernighan supported by the former) this Stevens book's content and guidance is a requirement for crafting any meaningful and useful system with C on Linux/Unix and related operating systems.
I crave the reader's indulgence for a quick (somewhat relevant, I believe) digression. And for such modern, distributed system development you would sure need essential system characteristics such as fault tolerance, scalability, live upgrades without down-time, soft real-time transaction response times and massive throughput; use of distributed in-memory databases, fast instant messaging, robust message queueing systems, Continuous Delivery/Integration, Testing tools, etc. And if one wants to do this without massive resource and time requirements the choice is essentially narrowed down to one platform essentially: Erlang/OTP and its Ecosystem of Library API, Platforms, Tools, etc. So search Erlang, Riak, RabbitMQ, etc. on Amazon. Maybe start with these two books, if you haven't: Learn Some Erlang Great Good and Erlang OTP Action Martin Logan
But C is not going anywhere soon. You will need C to augment Erlang/OTP, especially at the Systems programming and device interfacing level, where raw performance is essential. Erlang is performant enough, but in these areas C trumps all. And that is where this maestro of a book comes in. I think one needs to use it with another recent book with similar ethos and content but slightly deeper coverage: Linux Programming Interface System Handbook
And if time allows, or should one not say make time to read Jim Gray's & Andreas Reuter's superb and evergreen distributed, transaction and database design and system programming book: Transaction Processing Concepts Techniques Management to round up your distributed software development abilities. When you have read and imbibed this too you are ready to develop useful distributed systems and sites.
If it were run through a compiler then a number of errors would be thrown up in relation to references to undeclared functions caused by forward referencing to functions described in later sections or chapters without indicating this which may confuse the reader.
Would you like to see more reviews about this item?
Most recent customer reviews
Look for similar items by category