Understanding UNIX/LINUX Programming: A Guide to Theory and Practice

Paperback
from $0.00

Author: Bruce Molay

ISBN-10: 0130083968

ISBN-13: 9780130083968

Category: Linux

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:\ \ file I/0\ device I/0\ timers\ process management\ stream and datagram sockets\ POSIX threads\ file systems\ the terminal driver\ signals\ pipes\ network programming\ semaphores\ \ The text...

Search in google:

This book explains in a clear and coherent manner how Unix works, how to understand existing Unix programs, and how to design and create new Unix programs. The book is organized by subsystem, each presented in visual terms and explained using vivid metaphors. It breaks the information into manageable parts that can be presented, explained, and mastered.By using case studies and an extremely reader-friendly manner to illustrate complex ideas and concepts, the book covers the basics of systems programming, users, files and manuals, how to read a directory, using 1S, writing PWD, studying STTY, writing a video game, studying SH, environment and shell variables, I/O redirection and pipes, servers and sockets, writing a web server, license servers, and concurrent functions.For Unix system administrators and programmers, network programmers, and others who have used other operating systems and need to learn Unix programming to expand their skill sets.

EXPLAINING UNIX\ I wrote this book to explain how Unix works and to show you how to write system programs for Unix. Unix, still evolving after 30 years, has grown more complex, but it has not gotten more complicated. Its fundamental structure and design principles still apply. By understanding the structure, principles, and history, you will be able to read, enhance, and add to the vast accumulated literature of Unix programs. You also will have a lot of fun.\ To make the ideas really clear, I present them in many forms: pictures, analogies, pseudocode, real code, experiments, exercises, and anecdotes. These explanations evolve from actual, useful problems and projects.\ WHO IS PREPARED FOR THIS BOOK?\ You must know how to program in C. If you know C++, you should be able to follow the code and adapt quickly. You have to know about arrays, structs, pointers, and linked lists and be able to understand, and write, code that uses these.\ You need not have used Unix, nor do you need to know about the internals of an operating system. In each chapter, we start with the user-level features of Unix. The question, "What does that do?" at the user level leads inevitably to the system-level question, "How does it work?"\ You need to have access to a Unix system and a sense of adventure.\ WHAT'S IN IT FOR ME?\ This book explains the components of a Unix system, what they do, the theory of how they work, and how to program using those components. You will also see how all these components fit together to form a coherent, intelligible operating system.\ This book is based on a course, Unix Systems Programming, which I have taught at the Harvard Extension School since 1990. Students have described, on course evaluations and by e-mail years later, what the course gave them. One student said the course gave him "the keys to the kingdom." He understood Unix at the user, programming, and theory levels well enough to feel he could go anywhere and make sense of most problems. A physician in the course liked the case-study approach, comparing it to the way medical interns learn by working real problems.\ Another student, one who went on to be a project leader at the Open Software Foundation, said the course taught him the ideas and skills he needed for that job.\ FOR WHICH VERSION OF UNIX IS THIS WRITTEN?\ Almost all of them, including GNU/Linux. The focus of the book is the structure and skills that form the basis of all versions of Unix, not the specific variations, from one dialect to the next. Once you understand the main ideas, those details are easy to pick up.

Ch. 1Unix Systems Programming: The Big Picture1Ch. 2Users, Files, and the Manual: who Is First?30Ch. 3Directories and File Properties: Looking through ls71Ch. 4Focus on File Systems: Writing pwd107Ch. 5Connection Control: Studying stty139Ch. 6Programming for Humans: Terminal Control and Signals170Ch. 7Event-Driven Programming: Writing a Video Game197Ch. 8Processes and Programs: Studying sh249Ch. 9A Programmable Shell: Shell Variables and the Environment283Ch. 10I/O Redirection and Pipes321Ch. 11Connecting to Processes Near and Far: Servers and Sockets348Ch. 12Connections and Protocols: Writing a Web Server384Ch. 13Programming with Datagrams: A License Server406Ch. 14Threads: Concurrent Functions449Ch. 15IPC Roundup: Can We Talk?490Index523

\ From the Publisher"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\ \ \