Enables students to immediately see solutions to specific problems.
Allows students to learn how to use the system at the same time they learn how to program it.
Reinforces to students fundamental ideas and concepts in an easily understandable manner.
Encourages students to make sense of abstract ideas by showing them concrete examples.
Helps students to retain information with whimsical and unique models.
Enables instructors to present a complete curriculum, while tailoring the pedagogy to fit their needs.
Allows students to explore ideas by enlarging, rotating, and modifying graphics.
Enables students to download programs to further enhance their learning experience.
Understanding Unix®/Linux Programming explains how Unix and Linux work and shows how to write, programs at the system call level. Using nearly 100 complete programs and over 200 illustrations, the book demonstrates the basics as well as the advanced aspects of Unix systems programming.Topics include:
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?