
System Programming in Linux
A Hands-On Introduction
Stewart Weiss(Author)
No Starch Press
Published on 14. October 2025
Book
Hardback
1032 pages
978-1-7185-0356-4 (ISBN)
Description
Linux and Unix are essentially two takes on the same operating system, with Linux serving as the free, open-source version. This book serves as an all-around introduction to programming for a Linux or Unix operating system, covering how to write programs on and for the Linux OS, how to work efficiently within a Unix/Linux environment, and how the underlying design and structure of the Unix OS work. The author's friendly, conversational style reflects his more than 40 years of experience teaching this material. Numerous diagrams included in each chapter illustrate and simplify key concepts, while hands-on projects help to cement lessons that build on one another through the book. Prior programming experience, preferably in C or C++, is helpful but not required. No knowledge of Linux or Unix is necessary, but readers will need access to a Linux system.Linux and Unix are essentially two takes on the same operating system, with Linux serving as the free, open-source version. This book serves as an all-around introduction to programming for a Linux or Unix operating system, covering how to write programs on and for the Linux OS, how to work efficiently within a Unix/Linux environment, and how the underlying design and structure of the Unix OS work. The author's friendly, conversational style reflects his more than 40 years of experience teaching this material. Numerous diagrams included in each chapter illustrate and simplify key concepts, while hands-on projects help to cement lessons that build on one another through the book. Prior programming experience, preferably in C or C++, is helpful but not required. No knowledge of Linux or Unix is necessary, but readers will need access to a Linux system.
Reviews / Votes
"[T]his book will live alongside Michael Kerrisk's The Linux Programming Interface, and will be referred to as frequently and cited as often. It is a wonderful book, superbly written, and covers the exact material any systems programmer would hope."-John Dubchak, author of C++ for Beginners
More details
Language
English
Place of publication
San Francisco
United States
Product notice
Paperback (trade)
Dimensions
Height: 236 mm
Width: 187 mm
Thickness: 42 mm
Weight
1755 gr
ISBN-13
978-1-7185-0356-4 (9781718503564)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Additional editions

E-Book
10/2025
No Starch Press
€78.49
Available for download
Person
Stewart N. Weiss was a professor in the computer science department of Hunter College for 38 years and was also on the faculty of the Graduate Center of the City University of New York. He developed courses in Unix system programming, parallel computing, software testing, and open source software development. Weiss holds a PhD in computer science from the Courant Institute of Mathematical Science of New York University. He has been working with Unix and C since 1983 and is passionate about sharing his knowledge of Unix and Linux systems.
Content
Acknowledgments
Preface
Introduction
Chapter 1: Core Concepts
Chapter 2: Fundamentals of System Programming
Chapter 3: Times, Dates, and Locales
Chapter 4: Basic Concepts of File I/O
Chapter 5: File I/O and Login Accounting
Chapter 6: Overview of Filesystems and Files
Chapter 7: The Directory Hierarchy
Chapter 8: Introduction to Signals
Chapter 9: Timers and Sleep Functions
Chapter 10: Process Fundamentals
Chapter 11: Process Creation and Termination
Chapter 12: Introduction to Interprocess Communication
Chapter 13: Pipes and FIFOs
Chapter 14: Client-Server Applications and Daemons
Chapter 15: Introduction to Threads
Chapter 16: Thread Synchronizations
Chapter 17: Alternative Methods of I/O
Chapter 18: Terminals and Terminal I/O
Chapter 19: Interactive Programming and the NCurses Library
Appendix A: Creating Libraries
Appendix B: Unicode and UTF-8
Appendix C: Date and Time Format Specifiers
Bibliography
Preface
Introduction
Chapter 1: Core Concepts
Chapter 2: Fundamentals of System Programming
Chapter 3: Times, Dates, and Locales
Chapter 4: Basic Concepts of File I/O
Chapter 5: File I/O and Login Accounting
Chapter 6: Overview of Filesystems and Files
Chapter 7: The Directory Hierarchy
Chapter 8: Introduction to Signals
Chapter 9: Timers and Sleep Functions
Chapter 10: Process Fundamentals
Chapter 11: Process Creation and Termination
Chapter 12: Introduction to Interprocess Communication
Chapter 13: Pipes and FIFOs
Chapter 14: Client-Server Applications and Daemons
Chapter 15: Introduction to Threads
Chapter 16: Thread Synchronizations
Chapter 17: Alternative Methods of I/O
Chapter 18: Terminals and Terminal I/O
Chapter 19: Interactive Programming and the NCurses Library
Appendix A: Creating Libraries
Appendix B: Unicode and UTF-8
Appendix C: Date and Time Format Specifiers
Bibliography