Understanding UNIX/LINUX Programming: A Guide to Theory and Practice
Understanding UNIX/LINUX Programming: A Guide to Theory and Practice
Bruce Molay
List Price: $74.00 Amazon Price: $74.00 Used Price: $45.00

This was the text book for my Unix Programming class at Harvard. It is written by the professor and is a very excellent text book. It teaches Unix programming by looking at various command line tools on Unix systems. First it explains what the tool does, then details what operating system resources the tool utilizes. Finally the book helps guide you in coding a simple version of the tool yourself.

I would highly recommend the Harvard Distance education Course that uses this book if you are interested in doing Unix programming. You'll need a good background in C. For me the class helped reinforce what I already knew....I hate writing in C. But it was still an excellent class and I'm very glad I took it.

Here is a list of the book chapters


Customer Reviews
question in example code, still 5 stars
I have read more than half of the book. I like the material the book covers and the way of teaching by exemples.
Most other books focus on the features of the Unix system.

However I have minor questions:
1. There are typographical errors in exemple code.
2. I do not like function tty_mode(int how) in chapter 6.
it seems trivial and unnecessry and the static variable inside
the function seems questionable style.
I wonder why these obvious things happened in such a good book.



An excellent course through Unix and Linux with copious code and examples.
Unix has had the luxury of being one of the most documented operating systems in history. Many books have been dedicated to documenting the internals of Unix and Unix-like systems and some have risen to the ranks of classic texts regarded by all as necessary to understanding the inner workings of Unix. Understanding Unix�/Linux Programming would be in excellent company with these books. The book contains a copious amount of code and clear, diagramed explanations describing the processes transpiring in the machine.

Understanding Unix�/Linux Programming is designed to be used in an operating systems course with programmers fluent in C. Fortunately, though, the book can be used outside of the classroom if the reader does not mind an occasional open-ended questions with no included answers. The book may seem light on pages (530 including index), but the author should get an award for jamming so much useful explanation and helpful (and complete) code. The format of each chapter is familiar to most textbooks, with an introduction to the task at hand, explanations and examples, a summary, a list of explorations to further understand the topics presented, and a set of programming exercises. The exercises are creative and directly relate to the presented code. They're also (dare I say it?) fun. I'm not saying they'll replace crossword puzzles, but they do present creative or obvious challenges to the reader. (Like handling when a user types 'exit' from a shell, or blinking the text in an ncurses application).

The book includes topics on file I/O, device I/O, timers, process management, stream and datagram sockets, POSIX threads, file systems, the terminal driver, signals pipes, network programming and semaphores. A typical chapter will introduce an operating system concept (file systems and directories, for instance) and will briefly describe the current Unix command for working with that concept (pwd for determining the present working directory, or ls for listing the contents of a directory, and so forth). The author then proceeds to give a detailed description of what the operating system does to run the command. In the chapter on processes and programs, the author describes what processes are and how to use the ps command. Next the author describes how to fork child processes, and wait for them. This leads to the 'prompting shell', which is a simple, yet functional shell environment. Now some books would leave this exercise after creating a semi-functional shell, but the author presses on and in the next chapter creates 'small-shell' which is an interactive shell with a minimal scripting langauge and variable support. All of this in the span of 71 pages, with plenty of examples, full code listings, diagrams, and problem sets.

Understanding Unix�/Linux Programming takes advantage of the inquisitive nature of coders by presenting commands and command squences we all take for granted, and turning them into "how do they work" learning experiences. Anyone who has ever stopped to think why certain things work the way they do in Unix (or work at all) will find this book immensely helpful in sating that curiousity. Students who are assigned this textbook for a class should thank their teacher for choosing a genuinely useful text from which to read. I can't help but be jealous of students who will use this book for their classes. That jealousy is short-lived though, as anyone who wants an excellent resource for learning Unix programming will benefit from picking up this book. Kudos to the author for crafting not only an exceptionally easy to read and thourough book, but for taking the complex machinations of Unix and making them simple and accessible for all coders.


Easy to understand
It goes right to the point and it's easy too understand. One of the very few books out there that really shows what system programming is all about. Great samples too.



[Main Menu]