Programming Books C Java PHP Python Learn more Browse Programming Books
The Linux Programming Interface and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 


or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $31.99 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading The Linux Programming Interface on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

The Linux Programming Interface: A Linux and UNIX System Programming Handbook [Hardcover]

by Michael Kerrisk
5.0 out of 5 stars  See all reviews (75 customer reviews)

Buy New
$62.89 & FREE Shipping. Details
Rent
$26.71
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
In Stock.
Rented by RentU and Fulfilled by Amazon.
Want it Friday, April 25? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $45.99  
Hardcover $62.89  
Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

Book Description

October 28, 2010 1593272200 978-1593272203 1

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

Frequently Bought Together

The Linux Programming Interface: A Linux and UNIX System Programming Handbook + Linux Kernel Development (3rd Edition) + Linux System Programming: Talking Directly to the Kernel and C Library
Price for all three: $131.26

Buy the selected items together


Editorial Reviews

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

  • Hardcover: 1552 pages
  • Publisher: No Starch Press; 1 edition (October 28, 2010)
  • Language: English
  • ISBN-10: 1593272200
  • ISBN-13: 978-1593272203
  • Product Dimensions: 9.5 x 7.2 x 2.3 inches
  • Shipping Weight: 5 pounds (View shipping rates and policies)
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (75 customer reviews)
  • Amazon Best Sellers Rank: #20,876 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
143 of 148 people found the following review helpful
5.0 out of 5 stars An outstandingly good book October 28, 2010
Format:Hardcover
"Advanced Programming in the UNIX Environment" by Richard Stevens (2nd Edition updated by Stephen Rago in 2005) has been THE standard for UNIX system programming since the first edition came out in 1992. It is clear, correct and comprehensive. Another really excellent book is the updated edition of Marc Rochkind's "Advanced UNIX Programming." So it is unexpected that a new UNIX system programming book should come out that stands head and shoulders above the Stevens and Rochkind books, but Michael Kerrisk's "The Linux Programming Interface" does.

Kerrisk's book is more thorough, more comprehensive and just as well written as the Stevens and Rochkind books. It covers over 500 system calls in the SUSv3 and SUSv4 specification in 64 chapters, using 200 example programs, 88 tables, 115 diagrams and 1506 pages. It's a monumental work, and it's really very good. It is now easily THE standard book on Linux/UNIX system programming.

No work, no matter how good, is perfect, and I do have two small niggles, neither of which detract from its 5 star rating. (1) Some chapters have only one exercise. I wish there had been more. But, on the plus side, most chapters have at least one solution to an exercise. And, (2) the only treatment of debugging is a two page appendix on strace(1). I would have like to have had some discussion on the use of systemtap, gdb and other tools in debugging programs that use system calls.

All in all, an outstandingly good book and unreservedly recommended.
Comment | 
Was this review helpful to you?
73 of 74 people found the following review helpful
5.0 out of 5 stars A keeper October 29, 2010
Format:Hardcover
I received a copy of this from the publisher, and boy am I glad I did. It's a wonderful book that's an absolute keeper.

I've done quite a bit of systems level programming with POSIX systems and Linux and I wish that I'd had this book earlier primarily because its descriptions of systems-level programming on Linux are incredibly clear and detailed. Critically, the book is well written and never boring. I found it a pleasure to dip into different sections where I did know the subject (e.g. TCP and sockets) and where I did not (e.g. memory mapped files).

I then passed the book around in my office and a couple of days later got feedback from people that it had been very useful and that people thought it was well worth getting an office copy.

I was worried when the back cover claimed that the book was a 'new classic', but I think it's likely to be justified. It's nicely written and fun to read, and covers topics in depth. The most important thing is that the author has achieved the right balance in his descriptions and is able to explain clearly a huge variety of topics.
Comment | 
Was this review helpful to you?
43 of 44 people found the following review helpful
5.0 out of 5 stars Outstanding successor to Stevens' APUE November 26, 2010
By JRW
Format:Hardcover|Verified Purchase
I don't have much to add to Vladimir Ivanovic's review, except to echo that this is an outstanding book in the style of Stevens' (and Rago's) beloved classic Advanced Programming in the UNIX Environment. I am now recommending it to my friends and colleagues over Stevens. Covers the same territory as Stevens and more, since it contains the entire Linux system call interface. The treatment of each system call is very thorough, indicating deviations from the Single UNIX Specification and comparisons with various Unix flavors.

This is not a "how to program" book, but you will definitely learn a lot about programming from it. I would recommend it to anyone who is serious about Linux/Unix programming in C, or actually in any language.
Comment | 
Was this review helpful to you?
15 of 15 people found the following review helpful
5.0 out of 5 stars Excellent December 2, 2010
Format:Hardcover|Verified Purchase
"The Linux Programming Interface" is a very comprehensive book targeted at programmers and is concerned with teaching the system calls and library functions provided by the Linux operating system. It also makes a good Linux programmer's reference book. So far I have read about one third of the 1500 pages, but I can already say it is one of the best programming books that I have ever encountered. I had a background in Windows software development with only limited knowledge of Linux programming, and wanted to increase my Linux knowledge. This book definitely helped with that. It is well written and well organized with good use of diagrams and code examples. The preface recommends that readers should already be familiar with programming in general and C programming in particular.
Comment | 
Was this review helpful to you?
15 of 16 people found the following review helpful
5.0 out of 5 stars De Facto Standard for Linux System Programmers November 14, 2010
Format:Hardcover
I can't imagine how much work went into producing this volume. Every page seems to jump out of the nice, hard-bound cover with something interesting or exciting such as Chapter 38's discussion of writing secure privileged programs or Chapter 43's table 43-1 collection of "Identifiers and handles for various types of IPC facilities." This extensive work is a pinnacle collection of all things specific to programming Linux at the system call level. From the maintainer of man pages, we have an extension of them in this book. If you tend to think of man pages as more of a "what," this volume gives us the "what" with the "why."

The back cover heralds the work as "the definitive guide to Linux and UNIX system programming," and it is very thoroughly true. If you want to learn how to program Perl or Python, this isn't it. The examples are notably and obviously in C. C is the language of UNIX systems programmers and of the Linux kernel. Likewise, you won't find a dissertation on Gnome versus KDE. It is my opinion that this book is for the hacker who logs into the machine at runlevel 3 or, if at 5, first opens a terminal window in order to do "real work."

I strongly encourage you to obtain a copy of this book. If you're at all serious about Linux system programming, you'll be amazed at the insight produced on the pages of this extensive volume. I searched for at least one "bad" thing throughout it, you know, just to see if there was a blemish worthy of mention or some reason that 5 stars wasn't quite right. I haven't found one yet.

There are books that you simply love and want to read over and over again that you present 5 passionate stars.
Read more ›
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Buy This Book if You Are A Linux Programmer
If you are a Linux programmer, you should get this book. It contains readable explanations of almost all aspects of the Linux API. Read more
Published 11 days ago by Mark Doyle
5.0 out of 5 stars A useful book
Technical books are not all useful. Especially today, when in a few clicks tons of forums and articles may answer most questions. Read more
Published 1 month ago by EyesWideShut
5.0 out of 5 stars Clear and In-Depth
At over 1,500 pages, this work can appear to be intimidating for some readers. However, Kerrisk does a great job of being thorough. Read more
Published 1 month ago by IADev
5.0 out of 5 stars ..great book, but not for beginners
This book is for programmers paying attention to the smallest details. The book is well written and it is definitely a keeper! Read more
Published 2 months ago by Larry Dobkin
5.0 out of 5 stars awesome fantastic wonderful
Plenty of people have written great reviews of this book, so I won't repeat the same praises all over again. Read more
Published 2 months ago by techno hermit
5.0 out of 5 stars The Linux API bible
Absolutely worth the money, good both as a reference and for reading/researching. I had a chance to read many similar books but this one is by far the best
Published 3 months ago by Igor
5.0 out of 5 stars Amazing book !!!
Consolidating all the unix/linux knowledge in this detail in a book is a very difficult task. And who else could have done that except the manpage owner for Linux. Read more
Published 3 months ago by Sanjeev G.
5.0 out of 5 stars Tremendously Helpful, Very Complete
I have done a lot of embedded Linux programming and I rely on this book more than any other in in my programming library. Read more
Published 3 months ago by Matthew Gillette
5.0 out of 5 stars Very complete reference
This is an excellent book. I have many technical books and this is one of the most well written and complete. Highly recommended.
Published 3 months ago by Michael Rockwell
5.0 out of 5 stars Excellent, Informative, Well Paced
This book covers a lot of ground at a good pace and goes in-depth with interesting history and rationale. A great text book and reference that I'll use.
Published 4 months ago by zaphod
Search Customer Reviews
Only search this product's reviews
ARRAY(0xa45bce64)

What Other Items Do Customers Buy After Viewing This Item?


Forums

Topic From this Discussion
pthread RW lock
Space limitations meant I couldn't cover the entire pthreads API, so these functions were omitted.
Jan 5, 2014 by Michael Timothy Kerrisk |  See all 2 posts
Have something you'd like to share about this product?
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Search Customer Discussions
Search all Amazon discussions


Look for Similar Items by Category