Linux Programming InterfaceMichael Kerrisk
Linux Programming Interface
by Michael Kerrisk · first published 2017
156mentions
98recommended by
126HN commenters
2011–2026first – last mentioned
78% recommend21% neutral2% critical
Why HN recommends it
Thorough, readable handbook on Linux and UNIX system programming, from file I/O to sockets. Seen as the successor to Stevens' APUE, with practical advice; suits C programmers learning userspace and systems work.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.








One important part about learning how the Linux kernel works is understanding the details of the system's interface the kernel provides. In my opinion, there is no better book out there than the "Linux Programming Interface" by Michael Kerrisk: http://man7.org/tlpi/ It provides extremely detailed information about everything going on in Linux, as well as example programs and exercises to help you further your knowledge.…
on “Ask HN: Recommended resources to learn the Linux kernel and OS theory?” ↗If Michael Kerrisk is reading this: would be great to have a small supplementary book to the great "The Linux Programming Interface" that handles namespaces, capabilities et al.
on “Linux 3.8 introduced unprivileged user namespaces [pdf]” ↗"A Heavily Commented Linux Kernel Source Code" by Zhao Jiong and "The Linux Programming Interface" by Michael Kerrisk are the best I'm aware of.
on “Learning modern Linux: A handbook for the cloud native practitioner” ↗…problem with linux is that nobody owns responsibility for making the whole man system good. Linux kernel stuff is covered by the linux man project. This is run by Kerrisk, who is a good communicator - _The Linux Programming Interface_ reads like Stevens but is richer in practical advice. But if you go to the man page for something like awk or bash or grep (the common use-case - where you need a quick reference), they're maintained…
on “OpenBSD 5.0 Released” ↗It's honestly kind of nice to have multiple sources treating the same material a different way. This, Stevens' UNIX Network Programming, and Kerrisk's The Linux Programming Interface are all a student should need to get started with socket programming.
on “Beej's Guide to Network Programming” ↗Programming Pearls by Joe Bentley. And its followup. It's old but it does get you thinking about things. I'd also recommend The Linux Programming Interface by Michael Kerrisk as it teaches so much about what makes modern Unix what it is but.. it's arguably quite oriented around C by necessity. It's not a "C book" by any means though.
on “Ask HN: What language-agnostic programming books should I read?” ↗A more pragmatic book is The Linux Programming Interface, by Michael Kerrisk. It is Linux-specific though, but that's probably fine. Uninterruptible process sleep is covered in section 22.3. Threads, in chapters 29–33. Signals, chapters 20–22. The proc file…
on “Show HN: A “living” Linux process with no memory” ↗Some mention of his works here, but not his name Michael Kerrisk Author of the Linux Programming Interface, innumerable man pages, and many other projects. Absolutely, without question, the best longform technical writer. Reading his books, where he gets to exercise all of the skills in terms of sequencing,…
on “Ask HN: Examples of good technical writing?” ↗The linux programming interface by Michael Kerrisk. It’s incredibly good.
on “Beej's Guide to Network Programming (1994-2020)” ↗Another book (though not a C++ book) that comes to mind is: Linux Programming Interface by Michael Kerrisk.
on “Ask HN: Best book you read in 2011” ↗…BSD documentation as well. But you know what's crazy? The guy who coordinates the Linux man-pages project, Michael Kerrisk, is definitely one of the greatest technical writers out there. His book "The Linux Programming Interface" is fantastic. It'd be interesting to know why the BSD man pages are so much better.
on “FreeBSD expands activities as funds flow in” ↗A book that splits the difference very well is The Linux Programming Interface by Kerrisk. When I did network programming in class I leaned on it at least as much as Stevens. It's a great book for all kinds of stuff, too, not just network programming.
on “Beej's Guide to Network Programming (2012)” ↗The Linux Programming Interface by Michael Kerrisk. It seems to reference unshare on pages 603 and 801 (http://man7.org/tlpi/download/TLPI-Index.pdf ), but I don't own a copy to check what it says (it's on wishlist though).
on “Ask HN: What's a good book on modern Linux application programming?” ↗Echoing another comment: The Linux Programming Interface by Michael Kerrisk. I bought it instead of the UNP update based on its Amazon reviews, and haven't regretted it.
on “Ask HN: What's a good book on modern Linux application programming?” ↗As an alternative, I would recommend something like Michael Kerrisk's The Linux Programming Interface in lieu of a survey of foundational CS. Gaining a deep understanding of memory, files, processes, threads, signals, sockets, etc. As well as strong Emacs-Fu and bash scripting ability. These are the first…
on “The Imposter's Handbook” ↗