UNIX: The Textbook, Third Edition provides a comprehensive introduction to the modern, twenty-first-century UNIX operating system. The book deploys PC-BSD and Solaris, representative systems of the major branches of the UNIX family, to illustrate the key concepts. It covers many topics not covered in older, more traditional textbook approaches, such as Python, UNIX System Programming from basics to socket-based network programming using the client-server paradigm, the Zettabyte File System (ZFS), and the highly developed X Windows-based KDE and Gnome GUI desktop environments.
The third edition has been fully updated and expanded, with extensive revisions throughout. It features a new tutorial chapter on the Python programming language and its use in UNIX, as well as a complete tutorial on the git command with Github. It includes four new chapters on UNIX system programming and the UNIX API, which describe the use of the UNIX system call interface for file processing, process management, signal handling, interprocess communication (using pipes, FIFOs, and sockets), extensive coverage of internetworking with UNIX TCP/IP using the client-server software, and considerations for the design and implementation of production-quality client-server software using iterative and concurrent servers. It also includes new chapters on UNIX system administration, ZFS, and container virtualization methodologies using iocage, Solaris Jails, and VirtualBox.
Utilizing the authors’ almost 65 years of practical teaching experience at the college level, this textbook presents well-thought-out sequencing of old and new topics, well-developed and timely lessons, a Github site containing all of the code in the book plus exercise solutions, and homework exercises/problems synchronized with the didactic sequencing of chapters in the book. With the exception of four chapters on system programming, the book can be used very successfully by a complete novice, as well as by an experienced UNIX system user, in both an informal and formal learning environment.
The book may be used in several computer science and information technology courses, including UNIX for beginners and advanced users, shell and Python scripting, UNIX system programming, UNIX network programming, and UNIX system administration. It may also be used as a companion to the undergraduate and graduate level courses on operating system concepts and principles.
Table of Contents
CHAPTER 1: Overview of Operating Systems
CHAPTER 2: A “Quick Start” into the UNIX Operating System
CHAPTER 3: Editing Text Files
CHAPTER 4: Files and File System Structure
CHAPTER 5: File Security
CHAPTER 6: Basic File Processing
CHAPTER 7: Advanced File Processing
CHAPTER 8: File Sharing
CHAPTER 9: Redirection and Piping
CHAPTER 10: Processes
CHAPTER 11: Networking and Internetworking
CHAPTER 12: Introductory Bourne Shell Programming
CHAPTER 13: Advanced Bourne Shell Programming
CHAPTER 14: Introductory C Shell Programming
CHAPTER 15: Advanced C Shell Programming
CHAPTER 16: Python
CHAPTER 17: UNIX Tools for Software Development
CHAPTER 18: System Programming I: File System Management
CHAPTER 19: System Programming II: Process Management and Signal Processing
CHAPTER 20: System Programming III: Interprocess Communication
CHAPTER 21: System Programming IV: Practical Considerations
CHAPTER 22: UNIX X Window System GUI Basics
CHAPTER 23: UNIX System Administration Fundamentals
CHAPTER 24: ZFS Administration and Use
CHAPTER 25: Virtualization Methodologies