Home - APIs & Operating Environments
By Michael Kerrisk: The Linux Programming Interface: A Linux and UNIX System Programming Handbook First (1st) Edition
Price: $107.86
& 2-Day * Free Nationwide Shipping! (* details)
Availability: Usually ship in 24 hours if sold by Amazon.com
Product Details
| Binding: | Hardcover |
|---|---|
| EAN: | |
| Label: | 1st Edition |
| Feature: | |
| Publisher: | 1st Edition |
| Studio: | 1st Edition |
Editorial Reviews
Customer Reviews
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.
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.
"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.
This is the perfect computer book as far as I am concerned. It's well rounded, complete, thorough, easy to read, precise, interesting, helpful, useful, enjoyable and it has a green cover to boot. I highly recommend it to everyone who is interested in computers and not intimidated by programming concepts. It is technical, but the the writing is not dry.
I pre-ordered this book back in Sept 2010 and received just days before my honeymoon and while the wife didn't let me bring my laptop, she let me bring this book! I don't think I could have picked a better book to carry around 8000 miles. :)
This book is simply the best Linux programming book since Stevens' Unix programming books. It is very current covering the recent 2.6 kernel updates and SUSv4 specification. This book is an awesome 64 chapters of just about every aspect of Linux systems programming you can think of.
It has great coverage of the file system API, pthreads, socket programming, virtual memory, and so much more. I'm more of a server developer, so I was pleased to find daemons and advanced socket I/O covered in detail, especially the epoll() API.
This book is pure C, so you won't find any C++ or STL, but that's actually a good thing because it keeps the examples really simple. And of course the APIs described work just fine with C++. :)
The only thing this book is missing is possibly an appendix on gdb and valgrind. It does however have an appendix on strace. This book doesn't cover Autotools, so you may want to pick up a copy of Autotools: A Practioner's Guide to GNU Autoconf, Automake, and Libtool, which is also published by No Starch Press.
I seriously recommend this book to anybody who is interested in Linux programming. I recommend buying both the print and ebook versions so you don't have to carry this 5.1 pound book around, but it is nice to be able to mark up the book. Go buy this book!
This book is simply the best Linux programming book since Stevens' Unix programming books. It is very current covering the recent 2.6 kernel updates and SUSv4 specification. This book is an awesome 64 chapters of just about every aspect of Linux systems programming you can think of.
It has great coverage of the file system API, pthreads, socket programming, virtual memory, and so much more. I'm more of a server developer, so I was pleased to find daemons and advanced socket I/O covered in detail, especially the epoll() API.
This book is pure C, so you won't find any C++ or STL, but that's actually a good thing because it keeps the examples really simple. And of course the APIs described work just fine with C++. :)
The only thing this book is missing is possibly an appendix on gdb and valgrind. It does however have an appendix on strace. This book doesn't cover Autotools, so you may want to pick up a copy of Autotools: A Practioner's Guide to GNU Autoconf, Automake, and Libtool, which is also published by No Starch Press.
I seriously recommend this book to anybody who is interested in Linux programming. I recommend buying both the print and ebook versions so you don't have to carry this 5.1 pound book around, but it is nice to be able to mark up the book. Go buy this book!
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. This book is the kind that is a wealth of information in your hands and is simply worth 5 valued stars because you'll use it that often. If you're a systems programmer, this work is probably both types.
I believe that if you hold yourself as a skilled system programmer, that this book will either confirm it or help you find any flaws with your system concepts and implementation choices. So far, I haven't found any part of it that didn't offer me some useful nugget of quality information or insightful anecdote.
If you are a Linux geek, you probably need this book and will benefit as much as I do from reading, browsing and referencing it as you write your code.
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. This book is the kind that is a wealth of information in your hands and is simply worth 5 valued stars because you'll use it that often. If you're a systems programmer, this work is probably both types.
I believe that if you hold yourself as a skilled system programmer, that this book will either confirm it or help you find any flaws with your system concepts and implementation choices. So far, I haven't found any part of it that didn't offer me some useful nugget of quality information or insightful anecdote.
If you are a Linux geek, you probably need this book and will benefit as much as I do from reading, browsing and referencing it as you write your code.
A hardcover book, like a textbook. This book provides excellent information about complex programming tasks in Linux, explaining standards, history and how things have evolved into their current form, along with where things are headed in upcoming (currently un-finalized and assumed) future standards. It is thorough and comprehensive, and a MUST HAVE for anybody looking to do serious Linux programming.
That being said, the only real complaint I have is that in several sections the otherwise useful and relevant information is scattered out over several pages. Would greatly prefer to have a synopsis section at the beginning of each chapter with a paragraph or two to refresh the reader's mind about the nature of those items then explained in greater detail within, and without having to sift through those dozens of pages per chapter to get to the right portion.
Still, there is no question about it: Everything you need is there, it's just that sometimes you have to skip forward or backward several pages to get it all.
That being said, the only real complaint I have is that in several sections the otherwise useful and relevant information is scattered out over several pages. Would greatly prefer to have a synopsis section at the beginning of each chapter with a paragraph or two to refresh the reader's mind about the nature of those items then explained in greater detail within, and without having to sift through those dozens of pages per chapter to get to the right portion.
Still, there is no question about it: Everything you need is there, it's just that sometimes you have to skip forward or backward several pages to get it all.
Obviously in a book this large and including so much information, it is difficult to comment on the complete book after I've only had it for a couple of weeks, but from the parts I've looked at closely, it is terrific and a complement to APUE. As one example, I've had to look at how login accounting works, and APUE has less than a page on this with no detail at all, but TLPI has a 15 page chapter which was very helpful. I look forward to using this book to illuminate some of the other dark corners (for me at least) of Linux.
The Linux Programming Interface: a Linux and UNIX System Programming Handbook packs in a 1,500 page 'Bible' of detail offering the definitive programmer's guide to the Linux and UNIX programming interface. Here are descriptions of over 500 system calls and functions, tables, example programs, diagrams, and keys to reading, writing and troubleshooting files using libraries, threads, and interfaces. Learn to use pipes, shared memory and write network applications using the sockets API in a powerful survey packed with clear instructions.
I accidentally bought this book on the kindle for a pretty hefty price, but I am so glad I did. In the last week that I have been reading it, I have learned so much. For the last three years I have been using GNU/Linux as my preferred desktop and have been fascinated with the community around it. In my spare time I like to dig into my favorite programs just to see how they work (can't do that with Mac or Windows) and I have always wondered about how exactly libraries worked. This information is available on the internet, but you have to dig around. This book filled in a lot of the details, and from the moment I started reading it, I could not put it down. Excellently written and precisely executed. I am going to buy the hard cover just to have it on my shelf!
I had no idea there could exist a book like this. I love it.
I think the author struck the exact right balance between what to cover in detail and what the reader should be expected to know (or learn elsewhere).
You mostly get down-to-earth prose explaining how things work, why they work this way and what you must pay attention to.
The programming examples are examples to follow.
I expect this beautiful work to positively impact the future of the linux community.
I think the author struck the exact right balance between what to cover in detail and what the reader should be expected to know (or learn elsewhere).
You mostly get down-to-earth prose explaining how things work, why they work this way and what you must pay attention to.
The programming examples are examples to follow.
I expect this beautiful work to positively impact the future of the linux community.
This is a fantastic work in scope, clarity and rigor surpassing even the beloved Advanced Programming in the Unix Environment. It will no doubt become the standard guide for Linux system programming. By far the best book on the topic.
I was so impressed by the sample chapters that I quickly ordered a copy from the publisher.
My initial impressions have proven true. This book is a great reference and resource for learning both the Linux API's and the general posix API's.
I highly recommend this book to any geek interested in low level programming.
My initial impressions have proven true. This book is a great reference and resource for learning both the Linux API's and the general posix API's.
I highly recommend this book to any geek interested in low level programming.
The Linux Programming Interface is perhaps the only book Linux/Unix systems programming that is easy to understand yet complete in its documentation. This got to be one of the best books, I ever bought.
This book represent a valuable resource for studying Linux programming for intermediate and advanced programmers.
5 glowing stars plus regards.
5 glowing stars plus regards.
It's a very detailed reference book for programming in LINUX based on basic man pages.
The author had added the plentiful explanations and diagrams on the major topics, it isn't difficult to know that he is the one of the writers of the man pages.
There have been lots of praises for this book already, so I don't need to say anymore ...
BEST REFERENCE BOOK FOR THE LINUX PROGRAMMING.
The author had added the plentiful explanations and diagrams on the major topics, it isn't difficult to know that he is the one of the writers of the man pages.
There have been lots of praises for this book already, so I don't need to say anymore ...
BEST REFERENCE BOOK FOR THE LINUX PROGRAMMING.
Comprehensive, thorough and didactic book; many useful examples and clear discussion/analysis of functionality. Specially enjoyed the section on epoll.
This book has been really helpful improving my software!
If you are a Linux or UNIX programmer, you should get this book. Do you know a Linux or UNIX programmer and want to give him (her? ;-)) a gift? Get this book. I thought it was a stack of manpages, which would already have been great, but this book is the true successor to the historic Stevens works on UNIX. If you think you don't need this book since you know everything already, that's what I thought too, and I was wrong. Even if you won't read it, the 1552 pages will look really good on your desk.
If you are a Linux or UNIX programmer, you should get this book. Do you know a Linux or UNIX programmer and want to give him (her? ;-)) a gift? Get this book. I thought it was a stack of manpages, which would already have been great, but this book is the true successor to the historic Stevens works on UNIX. If you think you don't need this book since you know everything already, that's what I thought too, and I was wrong. Even if you won't read it, the 1552 pages will look really good on your desk.
I don't normal read books like this thick (I just don't have much time and don't have that patient), this is about the _only_ book with such an exception. I am going to thoroughly read every page of it because there is nothing useless you can find in this book, purely hands-on useful technics, standards, programming conventions, etc. I feels like missing any of the words is a lost. You want to be comprehensively grasp Linux low-level programming? Read it, write program with it.
Buy this book. It is the Rosetta Stone of Linux system programming, even if you're not using hieroglyphics as a programming language. Or the Dead Sea Scrolls, maybe, only not all dusty and fragile.
But seriously, this book is a one-stop shop for just about everything anyone who needs clear, accurate info on Linux system programming could ask for. Strangely, however, it has nothing on the Hyper Text Coffee Pot Control Protocol (RFC 2324).
But seriously, this book is a one-stop shop for just about everything anyone who needs clear, accurate info on Linux system programming could ask for. Strangely, however, it has nothing on the Hyper Text Coffee Pot Control Protocol (RFC 2324).
First off, this book covers quite a bit. I love the approach the author takes, by presenting you with an exploded view of everything, working his way out- I think you really get a better understanding of the mechanics that way.
To date, sadly, I've only had time to really get into the USB sections of this book while writing drivers, however I really can't wait to move throughout the book, as while I may already know most of this already, there are some dusty corners that could use some better explaining :)
Excellent book, I completely recommend it.
To date, sadly, I've only had time to really get into the USB sections of this book while writing drivers, however I really can't wait to move throughout the book, as while I may already know most of this already, there are some dusty corners that could use some better explaining :)
Excellent book, I completely recommend it.
This is a phenomenally good book for anyone that needs or wants to better understand and utilize Linux. It is extremely thorough and detailed and will have you saying to yourself many times, "AH HA! So that's how that works!" If you're doing Linux development or are a sysadmin that wants to understand more about what's happening under the hood, then you need this book.
Having read many books on C++ etc, I found this to be among the best - though it obviously doesn't focus on C++. I last read an O'Reilley book on the linux kernel and thought that was a good book too. However, this is far better for an application or system's programmer who's not generally recompiling the linux kernel.
The only bad thing I can say about the book is that I left it in the trunk of a limo on the way to a bachelor party weekend :( As good as the book was, it's probably just as well ;) The book is also a bit heavy to carry around at >1,400 pages, so I'm considering buying it with an e-reader.
The only bad thing I can say about the book is that I left it in the trunk of a limo on the way to a bachelor party weekend :( As good as the book was, it's probably just as well ;) The book is also a bit heavy to carry around at >1,400 pages, so I'm considering buying it with an e-reader.
It is a pleasure to have one book that I can use as a single reference source. My thanks to the author for putting this together.
If your nose is a bit sensitive, the physical book might smell of chemicals, or at least the original copy that I received did. I was able to get a less strongly smelling copy from the publisher, which helped a lot. The hardcover edition is fat and pricey but worth it - looking at the sample code from the kindle version it came with it was kind of hard to keep track of what's going on while flipping through screens.
Also - I was confused on this point for a little bit - if you're looking for coverage of user space processes like systemd or command-line filters like less or grep, this is not the book for you - it covers only the underlying kernel system calls and c api which those filters are written with.
That said, I'm learning a lot about linux through this book - and C as well. I learned C++ before I learned linux, in some programming class where we used it to build a simple calculator and similar tasks. Learning C a bit later was a pain because it seemed so archaic and there was no proper motivation. Reading this book, though, made me realize how C actually makes a lot of sense in its proper context as a tool primarily for systems programming, for which it was created.
It's still slow and dense to read and digest (I still have a long ways to go with it), but I don't think there's any way around that - there's a lot of subtle and good information here, and it builds up the foundations progressively.
Also - I was confused on this point for a little bit - if you're looking for coverage of user space processes like systemd or command-line filters like less or grep, this is not the book for you - it covers only the underlying kernel system calls and c api which those filters are written with.
That said, I'm learning a lot about linux through this book - and C as well. I learned C++ before I learned linux, in some programming class where we used it to build a simple calculator and similar tasks. Learning C a bit later was a pain because it seemed so archaic and there was no proper motivation. Reading this book, though, made me realize how C actually makes a lot of sense in its proper context as a tool primarily for systems programming, for which it was created.
It's still slow and dense to read and digest (I still have a long ways to go with it), but I don't think there's any way around that - there's a lot of subtle and good information here, and it builds up the foundations progressively.
Share your thoughts with other customers
Create your own review
Create your own review

