Buy new:
£70.25£70.25
FREE delivery:
Monday, March 13
in the UK
Dispatches from: Amazon Sold by: Amazon
Buy used £38.00
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required. Learn more
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
The Linux Programming Interface: A Linux and UNIX System Programming Handbook Hardcover – 6 Nov. 2010
| Amazon Price | New from | Used from |
|
Kindle Edition
"Please retry" | — | — |
- Kindle Edition
£43.99 Read with Our Free App - Hardcover
£70.257 Used from £31.99 11 New from £60.15
Enhance your purchase
The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.
In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.
You'll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You'll learn how to:
- Read and write files efficiently
- Use signals, clocks, and timers
- Create processes and execute programs
- Write secure programs
- Write multithreaded programs using POSIX threads
- Build and use shared libraries
- Perform interprocess communication using pipes, message queues, shared memory, and semaphores
- Write network applications with the sockets API
While The Linux Programming Interface covers a wealth of Linux-specific features, including epoll, inotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.
The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.
Praise for The Linux Programming Interface
"If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it."Martin Landers, Software Engineer, Google
"This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book."Mel Gorman, Author of Understanding the Linux Virtual Memory Manager
"Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in The Linux Programming Interface . . . makes it a must-have reference for both new and experienced Linux programmers."Andreas Jaeger, Program Manager, openSUSE, Novell
"Michael's inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem."David Butenhof, Author of Programming with POSIX Threads and Contributor to the POSIX and UNIX Standards
". . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It's certainly a book I'd recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know 'what's new' in the popular GNU/Linux system."Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author
". . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for."Anthony Robins, Associate Professor of Computer Science, The University of Otago
"I've been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs."Christophe Blaess, Author of Programmation systeme en C sous Linux
". . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1."Andrew Josey, Director, Standards, The Open Group, and Chair of the POSIX 1003.1 Working Group
"What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? The Linux Programming Interface is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf."Bill Gallmeister, Author of POSIX.4 Programmer's Guide: Programming for the Real World
". . . the most complete and up-to-date book about Linux and UNIX system programming. If you're new to Linux system programming, if you're a UNIX veteran focused on portability while interested in learning the Linux way, or if you're simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk's book is definitely the companion you want on your bookshelf."Loic Domaigne, Chief Software Architect (Embedded), Corpuls.com
- ISBN-101593272200
- ISBN-13978-1593272203
- Edition1st
- PublisherNo Starch Press
- Publication date6 Nov. 2010
- LanguageEnglish
- Dimensions18.42 x 5.82 x 24.13 cm
- Print length1552 pages
What other items do customers buy after viewing this item?
Product description
About the Author
Michael Kerrisk has been using and programming UNIX systems for more than 20 years, and has taught many week-long courses on UNIX system programming. Since 2004, he has maintained the man-pages project, which produces the manual pages describing the Linux kernel and glibc programming APIs. He has written or co-written more than 250 of the manual pages and is actively involved in the testing and design review of new Linux kernel-userspace interfaces. Michael lives with his family in Munich, Germany.
Product details
- Publisher : No Starch Press; 1st edition (6 Nov. 2010)
- Language : English
- Hardcover : 1552 pages
- ISBN-10 : 1593272200
- ISBN-13 : 978-1593272203
- Dimensions : 18.42 x 5.82 x 24.13 cm
- Best Sellers Rank: 218,849 in Books (See Top 100 in Books)
- 11 in Linux & Unix Programming
- 44 in Linux Distributions
- 211 in Computer Operating Systems (Books)
- Customer reviews:
About the author

I'm a New Zealand-born, Munich-based programmer, trainer, and writer who has been programming and using various UNIX systems since 1987, and focusing primarily on Linux since the late 1990s. Since 2004, have been the maintainer of the Linux man-pages project (http://www.kernel.org/doc/man-pages/), which documents the Linux and GNU C library programming APIs. As part of that work, I'm actively involved in the Linux development community, providing testing and design review of changes to the Linux kernel-user-space API. I write and deliver training courses on Linux/UNIX system programming and related areas. Those courses draw on many years of teaching and programming experience and a long and intimate association with the UNIX and Linux programming APIs to create superlative training courses. For more details, see http://man7.org/training/.
Customer reviews
Customer Reviews, including Product Star Ratings, help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyses reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from United Kingdom
There was a problem filtering reviews right now. Please try again later.
So far I've read only a few chapters in detail, skimmed over one or two others, and dived around in it to look some things up. Just a week after receiving it is probably too soon for a fair review of such an enormous book, but Michael asked me if I would consider writing one (after I contacted him -- I don't know him personally), and it's the least I can do to thank him for what I can already tell is going to be a stupendously useful book.
From its uncluttered no-nonsense title and cover design, right down to its nitty-gritty technical details, it's obvious that this is a clear, well thought out, and well written book by someone who knows their subject matter inside and out. That's no surprise: Michael Kerrisk is maintainer and a major contributor to the Linux man-pages project. But let's be clear, this book isn't just a bunch of man pages glued together and given a cover!
Despite its large size (over 60 chapters, 1500+ pages) and level of detail, this is a surprisingly readable guidebook for UNIX system calls with a particular focus on Linux. The chapters are arranged such that they can be read in order with minimal forward-referencing. Topics covered range from the history of UNIX and fundamental systems concepts, through file i/o and file systems, processes & threads, IPC, up to advanced socket techniques and alternative I/O models. The book has a fairly comprehensive (although not exhaustive) index. The chapter list at man7.org provides a complete picture. The IPC chapters by themselves look as good as any other book I've seen on the subject.
The topics are covered in enough detail to make the book useful as a reference, but retaining a readable style throughout. It does a good job of pointing out some of the UNIX and C library quirks that might get lost in the detail of pure reference material. The book doesn't stray too far from the main focus -- the system calls themselves -- and provides references to other sources that cover related topics in more detail. There are plenty of diagrams and examples, including source code (available from man7.org). Source examples tend to be fairly simple illustrations of individual or related system calls. The book is not too code-heavy and doesn't just go through the motions of listing every possible call and parameter. After all, you already have the freely-available man pages for that. (It's occasionally useful to have a BASH prompt to hand while reading it.)
This isn't a beginner's book: a certain level of basic UNIX/Linux knowledge and a good grasp of C programming is a pre-requisite to a book like this. There is a good balance of introductory and advanced material without "dumbing down" or sacrificing of important detail.
The chapters on sockets, while quite short, cover a surprising amount of detailed ground, although a discussion of some of the more important TCP options available with setsockopt() is notably lacking. To be fair, this isn't a socket-programming book, and references to other sources of information are provided. However, I did think this was an odd omission considering the level of detail provided elsewhere in the book.
There are some exercises at the end of chapters with selected answers provided. I think this is one area that could be expanded and improved for readers who might want to treat the book like a `self-study' course or use it in an educational environment.
Any book this size with this level of technical detail inevitably has some errors, and it was after reporting one (minor) mistake that the author asked if I would consider posting a review. However, I was apparently only the second person to report one! Considering how many eyes must have glanced over this book already, that surely says something about the book's accuracy. The book has its own web page on the author's site (man7.org) where there is an errata section and a list of kernel changes since the book was released. It looks like this book will be well supported, even as the Linux kernel continues to march on its evolutionary path.
As you can probably tell from the overall tone of this review, I'm very pleased with my purchase. I plan to read this cover-to-cover over the next couple of months, and I will probably get a second copy on expenses to sit on my desk at work! I may post a follow-up review later, once I've had more time to read and reflect.
I would recommend this book to any Linux programmer.
This book will not teach you C and will assume you have some prior experience in writing C code. Very much command line - this is a book about how programs communicate with each other and the Linux system, not about graphical user interfaces. It is the fundamentals you need to know to write solid/reliable Linux applications.
Physically this is big book, and certainly not something to want to constantly carry around with you - but it is well structured enough to be useful for quick reference, and even a reminders of Linux facilities available to you to "solve a problem". As technical books go - it is very readable.
So the obvious downside is the cost, but in my mind it was worth it for something pretty well up to date and although the code examples are free to download, in reality in buying the book you are compensating the author for the effort he has put in making those clear examples.
This book is specific to Linux, it provides examples of C code to do X,Y,Z, detailed descriptions about the inner workings of Linux. I'm a tester, I don't need to write C (that's just my current hobby) but the knowledge behind processes are fantastic.
However, I dislike the binding, which does injustice to an otherwise outstanding book. It is listed as a hardback, yet is a glued paperback with hard covers. Amazon should should stop misrepresenting "perfect bindings" as hardbacks/case bindings.
A note for seller though, packaging was bit rough and I got a deep dent on hard cover.







