- Format: Kindle Edition
- File Size: 15196 KB
- Print Length: 1553 pages
- Publisher: No Starch Press; 1 edition (1 October 2010)
- Sold by: Amazon Asia-Pacific Holdings Private Limited
- Language: English
- ASIN: B004OEJMZM
- Text-to-Speech: Enabled
- Word Wise: Not Enabled
- Customer Reviews: 244 customer ratings
- Amazon Bestsellers Rank: #1,07,015 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter mobile phone number.
The Linux Programming Interface: A Linux and UNIX System Programming Handbook Kindle Edition
|Length: 1553 pages||Enhanced Typesetting: Enabled||Page Flip: Enabled|
- Due to its large file size, this book may take longer to download
What other items do customers buy after viewing this item?
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.
Would you like to tell us about a lower price?
Customers who viewed this item also viewed
Review this product
There was a problem filtering reviews right now. Please try again later.
Top international reviews
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.
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.
The book has all the quality I always wanted:
1) it must be thorough: after reading you shouldn't need to read other book or search the web to complete your comprehension: every info you need must be there.
2) it must be clear: there should never be any ambiguity in expressions or situation that requires you to test the info on specific example. You must be able to understand it on first the first reading
3) it must be a pleasant journey: the order of the information should match the normal flow of your thinking and interrogations. The author should guide you so that when you think: "I wonder what would happen in this different situation", the next paragraphs do address that interrogation you have.
Again this book does all this extremely well. There is simply no equivalent in the windows world. It makes me learning linux a very pleasant experience.
Many many thanks Mr Kerrisk