TL;DR
This GitHub repository publishes the example and demo programs that accompany Stewart Weiss's book Introduction to System Programming in Linux. The code is organized by chapter, carries GPL/LGPL licensing, and includes simple build steps in a common directory plus per-chapter makefiles.
What happened
A public repository on GitHub hosts the source code used in the book Introduction to System Programming in Linux by Stewart Weiss. The repo groups example programs into chapter-named directories and provides shared headers and utility libraries in common, include and lib subdirectories. Authors and maintainers note the code in the repository may differ from the book text; a branch called firstprinting preserves the code from the book's first printing. Build instructions require running make inside the common directory, then make install to populate include and lib, followed by running make in the chosen chapter directory. All complete programs are distributed under the GNU General Public License v3, while the common library source is under the GNU Lesser General Public License v3; copies of the licenses appear in the repository. The maintainer asks users to open issues for suggestions, bug reports, or improvements and points to a CHANGES file for a log of updates.
Why it matters
- Provides runnable, chapter-aligned sample code for readers learning Linux system programming.
- Open-source licensing (GPLv3/LGPLv3) permits reuse and study while clarifying redistribution terms.
- Organized, reproducible build steps make it easier for learners to compile and experiment with examples.
- A CHANGES file and branch for the first printing help users track differences between repository code and printed book content.
Key facts
- Repository contains source code that accompanies the book Introduction to System Programming in Linux by Stewart Weiss.
- The book is published by No Starch Press; an Amazon listing and a No Starch webpage are referenced in the repo README.
- Complete programs are licensed under GNU General Public License (Version 3); library source in common/ and include/ is covered by GNU Lesser General Public License (Version 3).
- Build steps: cd common; make; make install — then cd into a chapter directory and run make to build that chapter's programs.
- Directory layout groups code by chapter (ChapterNN) and provides shared include, lib and makefiles directories.
- A CHANGES file documents edits made to the code since the book's most recent printing; a firstprinting branch preserves the initial printing's code.
- Repository activity shown in the source: 160 stars, 22 forks, 5 watchers, and two contributors named in the listing.
- No releases are published and no packages are published in the repo according to the repository metadata.
- Primary language in the repo is C, with supporting Makefile content.
What to watch next
- Monitor the CHANGES file and repository commits for updates that may diverge from the book text.
- Check the firstprinting branch if you need the exact code from the book's initial printing.
- Not confirmed in the source: whether the code is continuously tested across current Linux distributions or specific compiler/toolchain versions.
- Not confirmed in the source: whether a formal CONTRIBUTING file or maintainer code-review workflow will be added.
Quick glossary
- GNU General Public License (GPL) v3: A copyleft license that grants permission to use, modify, and redistribute software, requiring that derivative works be distributed under the same license.
- GNU Lesser General Public License (LGPL) v3: A more permissive copyleft license typically used for libraries, allowing them to be linked into proprietary software under certain conditions.
- make: A build automation tool that reads Makefiles to determine how to compile and link programs from source code.
- static library: A collection of compiled object code bundled into a file (.a on Unix-like systems) that is linked into programs at compile time.
- header file: A source file (commonly with .h extension) that declares functions, macros, and data types for use across multiple C source files.
Reader FAQ
How do I build the example programs?
Clone the repo, cd into common and run 'make' then 'make install', then enter a chapter directory and run 'make'.
Is the repository code identical to the book?
The repository may differ from the book; a branch named firstprinting contains the code from the first printing.
How can I report bugs or suggest improvements?
The maintainer requests that users create GitHub issues with reproduction details; there is currently no CONTRIBUTING file.
What license covers the code?
Complete programs: GPL v3; common library source and includes: LGPL v3, with license copies in the repository.
Are there binary releases or packages available?
Not confirmed in the source: there are no published releases or packages listed in the repository metadata.
System Programming in Linux: A Hands-On Introduction "Demo" Programs This repository contains source code for the programs in my book, "System Programming in Linux: A Hands-On Introduction". The book is…
Sources
- System Programming in Linux: A Hands-On Introduction "Demo" Programs
- System Programming in Linux
- My book – Hands-On System Programming with Linux
- PacktPublishing/Hands-on-System-Programming-with-Linux
Related posts
- Developer Frustrated with GitHub Actions After ARM Build Fails in CI
- Servo 2025 community and project metrics: contributions, WPT, and growth
- Lago, the open-source billing platform, is hiring globally across teams and geos