The text presents theory in practical contexts with detailed explanations of common Unix programs such as "who, Is, pwd, sh," and "httpd." Each example starts with a description of what the program does and how people use it. From there, the text discusses the underlying principles and mechanisms, and then uses those ideas to write a version of the program.
The book is designed for learning. Chapter summaries, memorable analogies, experiments, explorations, and varied exercises help the reader understand and program Unix as an integrated, logical whole.
Material in the book applies to all versions of Unix and Linux. The book assumes the reader knows the C programming language and is familiar with a modern operating system. The book is suitable as a class text, for self-study, and for reference, and it provides thorough coverage of information essential to students, Unix programmers, and system administrators.
(NOTE: Each chapter includes a section stating its objectives and a summary.) 1. Unix Systems Programming: The Big Picture. 2. Users, Files, and the Manual: Who Is First. 3. Directories and File Properties: Looking through ls. 4. Focus on File Systems: Writing pwd. 5. Connection Control: Studying stty. 6. Programming for Humans: Terminal Control and Signals. 7. Event-Driven Programming: Writing a Video Game. 8. Processes and Programs: Studying sh. 9. A Programmable Shell: Shell Variables and the Environment. 10. I/O Redirection and Pipes. 11. Connecting to Processes Near and Far: Servers and Sockets. 12. Connections and Protocols: Writing a Web Server. 13. Programming with Datagrams: A License Server. 14. Threads: Concurrent Functions. 15. IPC Roundup: Can We Talk?
Bruce Molay, an award-winning teacher at Harvard and an independent software developer for over two decades, has combined his two passions of masterly teaching and Unix programming in this book.
"The material covered goes to the right depth to allow students to understand the UNIX operating system to program it. I wish a book of this calibre was available during my graduate studies as it would have helped me tremendously in learning to program the UNIX system." -- Sam R. Thangiah, Slippery Rock University "This text is one of the most accurate and articulate that I have read. It is easily readable." -- Lawrence B. Wells, Dallas County Community College