TLPI is both a guide and reference book for system programming:
If you are new to system programming,
you can read TLPI linearly as an introductory guide:
each chapter builds on concepts presented in earlier chapters,
with forward references kept to a minimum.
Most chapters conclude with a set of exercises
intended to consolidate the reader's understanding of
the topics covered in the chapter.
If you are an experienced system programmer,
TLPI provides a
that you can consult for details of nearly the entire
Linux and UNIX (i.e., POSIX) system programming interface.
To support this use, the book is thoroughly cross referenced
and has an extensive index.
TLPI provides more than
just the technical details of the system programming interface:
it gives important context describing why and how to use the interfaces,
accompanied by a rich set of (complete)
In the book, I assume that reader has some prior programming experience,
a reading knowledge of C,
and understands how to use common Linux or UNIX commands.
Previous experience of system programming is not required.
Extensive coverage of Linux-specific features:
TLPI covers features such as
(a mechanism for improving security in privileged programs),
(attaching arbitrary metadata to a file),
(formerly known as ext2 extended attributes),
the /proc file system,
and Linux-specific details of the implementation of
file I/O, signals, threads, shared libraries,
interprocess communication, and sockets.
A heavy emphasis on portability:
You can use TLPI as a guide to system programming on
any UNIX system
(hence the subtitle,
A Linux and UNIX System Programming Handbook).
TLPI pays close attention to UNIX standards, in particular
clearly distinguishing features that are Linux-specific
from those that are present on most or all UNIX systems.
Consequently, you can use TLPI as a guide while writing programs
that need to be portable to all UNIX systems.
I'm an active member of the Linux community.
I've worked on the Linux
project since 2000, and have been the project maintainer since 2004.
It's quite possible you've already read some of my published work,
since I'm the author or coauthor of nearly 40% of the
1000+ pages in the man-pages project.
The programming examples in TLPI are in C,
but the concepts are equally applicable in a wide range of other languages,
both compiled languages such as C++, Rust, D, Pascal, and FORTRAN,
and scripting languages such as Perl, Python, and Ruby.