Introduction to System Programming in Linux

by Stewart N. Weiss
November 2024, 700 pp.
Use coupon code PREORDER to get 25% off!

This book deftly reveals the Unix operating system’s design and structure, teaching you how to write programs on and for the Linux OS and how to work efficiently within a Unix/Linux environment. Targeted at beginners with some basic C or C++ programming knowledge, you’ll find expert guidance on using the bash shell and other helpful Unix tools, and gain a practical understanding of the Linux kernel's application programming interface.

The author’s friendly, conversational style reflects his more than 40 years of experience teaching what he refers to as “the marvel of Unix.” Numerous diagrams included in each chapter illustrate and simplify key concepts, along with hands-on projects that build on one another as you work through the book.

*Prior programming experience, preferably in C or C++, will be helpful but not required. No knowledge of Unix is necessary, but you will need access to a Linux system


Author Bio 

Stewart N. Weiss is a tenured, associate professor in the Computer Science Department at Hunter College. Weiss earned his PhD in computer science from the Courant Institute of Mathematical Science of New York University in 1987. He has been teaching a broad range of courses since 1982 and has developed several new courses for the department, including  Unix system programming, parallel computing, and open source software development.

Table of contents 

Chapter 1: Basics of Unix System Programming
Chapter 2: Working in the Command Interface
Chapter 3: Fundamentals of System Programming
Chapter 4: Getting Started: Time and Locales
Chapter 5: Basic Concepts of File I/O
Chapter 6: Further Concepts of File I/O

Chapter 7: The Directory Hierarchy
Chapter 8: Introduction to Signals
Chapter 9: Signal Handling
Chapter 10: Process Structure
Chapter 11: Process Creation and Termination
Chapter 12: Threads
Chapter 13: Disk and Terminal I/O
Chapter 14: Interactive Programs
Chapter 15: The NCurses Library
Chapter 16: Event-Driven Programs
Chapter 17: Thread Synchronization
Chapter 18: Interprocess Communication: Pipes and FIFOs
Chapter 19: Interprocess Communication: Clients and Servers
Chapter 20: Introduction to Sockets

Appendix A: Creating Libraries
Appendix B: Date and Time Format Specifiers

Appendix C: Filters
Appendix D: Unicode and UTF-8
Appendix E: The Make Utility
Appendix F: Solutions to Selected Exercises
Appendix G: Source Code Listings


The chapters in red are included in this Early Access PDF.