

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Poland.
The Linux Programming Interface (TLPI) 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. Review: I've never seen a book rated so high. After starting to read it, If I could give it 10 stars, I would! Wow! - What an incredible resource for the Linux community! I'm an Oracle DBA, that has always been interested in the lower-level stuff (I/O, system calls, etc.). I was researching Oracle ASM (Oracle's own volume manager), but feeling the need to get more insight into the Linux I/O subsystem. So, I went to desertcart, started searching for relevant resources, and came across this book. I've bought thousands of dollars of technical books on desertcart, and read lots of desertcart reviews. When I bought this book, it had 61 reviews. 60 rated the book a 5 star, and 1 rated the book a 4-star. I have *never* seen a book rated so highly on desertcart before. A book, with incredible ratings like that, was simply unheard of. I'm now reading the book, and thoroughly enjoying the care, the attention to detail, the comprehensiveness, the technical accuracy, the methodology, the extremely well-written English, the clear explanations, and the well-written code. For example, on page 246, where Michael discusses Direct I/O, he says: "If a file is opened with O_DIRECT by one process, and opened normally (i.e. so that the buffer cache is used) by another process, then there is no coherency between the contents of the buffer cache and the data read or written via direct I/O. Such scenarios should be avoided." Wow. In just one sentence, Michael tells us one of the fundamental issues with concurrent I/O, and that by simultaneously using different I/O mechanisms, you can corrupt your files. Another example: on page 249, Michael writes: "When using the stdio library functions in conjunction with I/O system calls to perform I/O on disk files, we must keep buffering issues in mind. I/O system calls transfer data directly to the kernel buffer cache, while the stdio library waits until the stream's user-space buffer is full before calling write() to transfer the buffer to the kernel buffer cache." Wow. It makes sense, when you know as much about the Linux kernel as Michael does. Need to insert an fflush() between the stdio write and the system call write. Another "Aha!" moment, just a couple of pages later. And the pages in between had one of the clearest examples of code for Direct I/O that I have ever seen. Michael even writes about the memory alignment challenges of Direct I/O. It's simply incredible! How in the world could anyone write so much high-quality technical stuff? It's 1500+ pages of awe inspiring, amazing technical blessing. It is a fabulous example to everyone in the I.T. industry, and a very high bar for any technical books to come. Thank you, Michael, for your incredible book. Review: If you're the kind of person to find this page, just buy it - This is without a doubt the best written technical book I've ever read; it's honestly hard to believe only one person wrote and organized it. In an era where you can often get a better answer from a highly voted Stack Overflow question than you'll find most books, TLPI is 100% an exception. The material is presented in such a fashion that pretty much anyone with a working knowledge of C can pick it up, sit down, and understand any of its topics. Kerrisk often opens with a code-light "overview" chapter on the more dense topics (e.g. networking), and his descriptions are as elegant and well-written as anything you'll find on SO or by googling. He then walks through the topic with an in-depth discussion of the various APIs and excellent example code, crucially often also mentioning now-outdated approaches you will still see pop up, so the reader isn't clueless when encountering pre-POSIX code in real life. It's the rare book indeed which can serve as both an excellently written (and illustrated!) introduction and reference. If you're a student looking to get into linux systems programming (or been assigned some less than high quality reading), pick this up. if you're a programmer of the type who often finds himself typing "man 2 somethingsomething...", absolutely 100% pick this up. The fact that the author is also in charge of the man pages project for linux shows in his encyclopedic knowledge--what makes this book so outstanding is his ability to present that knowledge in an easily-digested form with tight, well-written examples. Yes, it's massive. But trust me, there isn't a page wasted in here--even if you're experienced in the area, walking through each chapter and digesting Kerrisk's explanations will serve you well. And to any professors or teachers out there who are curious: yes, please use this as your textbook. As a grad student who hasn't been in CS for very long, I was extremely fortunate to be assigned this as a textbook for a systems programming class. Without this book, there's no way I couldn't have learned as much as I did in a fairly short period of time; more importantly, it made me come to appreciate and enjoy systems programming. It combines the readability/working examples of the best Stack Overflow answers, the comprehensiveness of man pages, and logical progression for new learners in one amazingly tight (if not light) package.
| Best Sellers Rank | #47,423 in Books ( See Top 100 in Books ) #1 in Unix Programming #5 in Linux Programming #6 in Linux Networking & System Administration |
| Customer Reviews | 4.8 out of 5 stars 772 Reviews |
J**R
I've never seen a book rated so high. After starting to read it, If I could give it 10 stars, I would! Wow!
What an incredible resource for the Linux community! I'm an Oracle DBA, that has always been interested in the lower-level stuff (I/O, system calls, etc.). I was researching Oracle ASM (Oracle's own volume manager), but feeling the need to get more insight into the Linux I/O subsystem. So, I went to Amazon, started searching for relevant resources, and came across this book. I've bought thousands of dollars of technical books on Amazon, and read lots of Amazon reviews. When I bought this book, it had 61 reviews. 60 rated the book a 5 star, and 1 rated the book a 4-star. I have *never* seen a book rated so highly on Amazon before. A book, with incredible ratings like that, was simply unheard of. I'm now reading the book, and thoroughly enjoying the care, the attention to detail, the comprehensiveness, the technical accuracy, the methodology, the extremely well-written English, the clear explanations, and the well-written code. For example, on page 246, where Michael discusses Direct I/O, he says: "If a file is opened with O_DIRECT by one process, and opened normally (i.e. so that the buffer cache is used) by another process, then there is no coherency between the contents of the buffer cache and the data read or written via direct I/O. Such scenarios should be avoided." Wow. In just one sentence, Michael tells us one of the fundamental issues with concurrent I/O, and that by simultaneously using different I/O mechanisms, you can corrupt your files. Another example: on page 249, Michael writes: "When using the stdio library functions in conjunction with I/O system calls to perform I/O on disk files, we must keep buffering issues in mind. I/O system calls transfer data directly to the kernel buffer cache, while the stdio library waits until the stream's user-space buffer is full before calling write() to transfer the buffer to the kernel buffer cache." Wow. It makes sense, when you know as much about the Linux kernel as Michael does. Need to insert an fflush() between the stdio write and the system call write. Another "Aha!" moment, just a couple of pages later. And the pages in between had one of the clearest examples of code for Direct I/O that I have ever seen. Michael even writes about the memory alignment challenges of Direct I/O. It's simply incredible! How in the world could anyone write so much high-quality technical stuff? It's 1500+ pages of awe inspiring, amazing technical blessing. It is a fabulous example to everyone in the I.T. industry, and a very high bar for any technical books to come. Thank you, Michael, for your incredible book.
B**H
If you're the kind of person to find this page, just buy it
This is without a doubt the best written technical book I've ever read; it's honestly hard to believe only one person wrote and organized it. In an era where you can often get a better answer from a highly voted Stack Overflow question than you'll find most books, TLPI is 100% an exception. The material is presented in such a fashion that pretty much anyone with a working knowledge of C can pick it up, sit down, and understand any of its topics. Kerrisk often opens with a code-light "overview" chapter on the more dense topics (e.g. networking), and his descriptions are as elegant and well-written as anything you'll find on SO or by googling. He then walks through the topic with an in-depth discussion of the various APIs and excellent example code, crucially often also mentioning now-outdated approaches you will still see pop up, so the reader isn't clueless when encountering pre-POSIX code in real life. It's the rare book indeed which can serve as both an excellently written (and illustrated!) introduction and reference. If you're a student looking to get into linux systems programming (or been assigned some less than high quality reading), pick this up. if you're a programmer of the type who often finds himself typing "man 2 somethingsomething...", absolutely 100% pick this up. The fact that the author is also in charge of the man pages project for linux shows in his encyclopedic knowledge--what makes this book so outstanding is his ability to present that knowledge in an easily-digested form with tight, well-written examples. Yes, it's massive. But trust me, there isn't a page wasted in here--even if you're experienced in the area, walking through each chapter and digesting Kerrisk's explanations will serve you well. And to any professors or teachers out there who are curious: yes, please use this as your textbook. As a grad student who hasn't been in CS for very long, I was extremely fortunate to be assigned this as a textbook for a systems programming class. Without this book, there's no way I couldn't have learned as much as I did in a fairly short period of time; more importantly, it made me come to appreciate and enjoy systems programming. It combines the readability/working examples of the best Stack Overflow answers, the comprehensiveness of man pages, and logical progression for new learners in one amazingly tight (if not light) package.
B**E
Very educational, many examples in C99, exercises.
Unexpectedly this book helped me understand how Event Loop in NodeJS works. Many examples in C99. Great explanation what system call is. Loved history view in chapter 1.
C**A
TLPI - A masterpiece, full of essential information. A real look under the hood!
/** * Name: Charles * Age: 23 * Purchased: May, 2013 */ Organization: [0] -> The book is divided into chapters. [1] -> Each chapter has multiple sections. [2] -> Each chapter ends with a summary. [3] -> At the very end of each chapter are exercises meant to reinforce what was learned in the chapter. This is by far one of the best computer science texts I own. I did not purchase this book as a requirement for a class (though I am a student), but I did purchase it for 'personal consumption' and to further my knowledge of programming and grow as a unix/linux systems programmer. I have read many computer science books by many different publishers and I have to admit I really enjoy the books that I own that were printed by No Starch press. I was turned on to this book by an interest in C/C++ socket programming and systems programming in general. I have a background in web development and had been programming in C for about a year when I purchased this book. There is something to learn for everyone in this book, regardless of how many years or decades of experience you have. The book starts with a history of Unix, Linux, and standards, and then progresses into the great detail the inner workings of linux and unix. One of my biggest disappointments with most other programming books is that the authors use bad analogies to explain how things work, or fail to explain how things work at all and only offer a shallow glimpse into the subject. Some authors seem to go back over their books adding stupid and unintelligent filler to try and make the book longer. This book is over 1500 pages and each page is jam packed with information. In fact, I'm sure there was information that was deemed 'not important' enough to make it into this book, and thus the book references how one can find more information on a topic. I have so many good things to say about this book, I highly recommend it to anybody with an interest in linux systems programming. You will need an understanding of C programming to get through the book. If you are looking for a book on how to program in C, this is not the book. If you are a C programmer, or are learning C, and would like a book that shows you how to apply your programming knowledge to the linux and unix operating systems, this is a book for you. This is a book for system admins, network admins, hackers, teachers and professors, students (high school, college, or graduate), makers, computer scientists, etc. This is one book that I know I will carry with me everywhere. Or I will buy multiple copies so that I don't have to lug around this heavy, 1500+ pg hardcover book. Definitely a book you want at home, at the office, on the plain, in the car, in the bathroom, or anywhere else you can think of reading! This is the most well written programming book that I own!
A**A
Highly recommend
I got this book in really good condition. The paper is of high quality and I love the font used. Regarding the books contents I believe this book is indispensable to software practitioners who want to have a deep understanding of Unix-like systems. I take this book with me on flights to dig deep into topics that interest me. The exercises and code are great and the explanations on different topics are done well. I really liked the parts that discussed Interprocess communication as well as File I/O. Would I recommend this book? Yes, of cause!
A**L
One of the best technical books I have ever read. Removed the intimidating mystery of the Linux OS and its kernel.
The Linux operating system, and it's kernel more specifically, has always been this blackbox of mystery to me and thankfully this book has removed much of that. The various topics of system programming are broken up very nicely in the book. Each chapter is primarily broken up into three sections: An introduction into the subject. An overview of the primary APIs provided by the Kernel to achieve the desired task. And an easy to understand working example of these APIs in action written in C. I now have a better idea of the Linux programming interface and it doesn't feel like much of a mystery to me anymore. I finally realize how central the kernel is to the operations of the OS. I feel I can leverage this knowledge to make me a much more productive contributor to my software development team. I suggest this book to anyone who is unfamiliar with the Linux operating system and its kernel. A working understand of C is strongly suggested since the examples are all done in it. The C examples are not advanced, so you don't need to be an expert. Just teach yourself the basics of C programming, including working with pointers, and you should be good enough to follow through them. I also found this book to often be a better resource to figuring out common tasks in system programming versus searching the web. Thanks Kerrisk for putting together this book and the contributions you made to the man pages. It certainly is a new classic.
W**S
Modern Masterpiece of Linux Programming
This book claims it is the single most comprehensive book about Linux and is destined to be a classic. After finishing the book I would agree. For 1400 pages the author beautifully explains how Linux kernel programming works. I did not notice a single mistake the entire book and the writing flows elegantly with each sentence conveying valuable information. The author knows the material so well including the history, and can explain why many design decisions were made. When a function call or a technique is outdated the author explains why it is no longer used, and what the new paradigm is. I found the sections on IPC (Inter-Process Communication) to be excellent. Every type of IPC is explained with multiple chapters for each in some cases. The trade-offs are examined in depth as to the best communication method. Certain sections used analogies well. On page 1155 stream sockets are explained and the author explains how this is like a telephone. Each step of setting up a socket is explained from a technical standpoint and how this would be represented as a real life telephone. The balance between practicality and theory was excellent. A surprising amount of C code is included in the book (Linux is written in C). The coding examples have comments and side notes when needed. This book assumes you know C at least reasonably well. It is rare to find a book as complete, well written and detailed as this. This is a true modern classic and a masterpiece.
L**R
A high quality book, but has its flaws
This book teaches you how to use a tool to get work done, mainly the Linux OS. Author does a good job showing plenty of code examples and has rewarding exercises at the end of each chapter. This is without a doubt a good beginner and intermediate introduction in one. However, I dislike the page count and the lack of depth on important topics. Just be aware your learning doesn't stop with this book alone. I highly recommend it!
H**S
Amassado mas chegou antes do prazo
Veio um pouco amassado mas รฉ bem completรฃo. Era pra chegar 11 de abril chegou 01 de abril
R**K
An incredibly well written book
I have read a lot of technical books (principally windows and c++ related) and really I have NEVER seen a technical book as well written as this one. 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
A**H
Worth every penny.. page and print quality is superb
I haven't read the book but I know this book is like bible for the linux world. So let me share other aspect of this book. 1.) I received the book in excellent condition except very minor damage from the bottom (refer last uploaded image). Initially when I have received the book I thought book is dameged from the front and sides but after cleaning with wipes it was all good ๐ 2.) I have spent 5k+ on this book but trust me its worth. First of all, this is imported from US. Quality of pages and printing are superb. It has roughly 1.5k pages and 2.5 kg weight so price is justified. Still i would suggest seller to use better packaging or to use bubble wrap if possible.
T**D
Everything you needed to know about Linux.
East to read and comprehensive.
C**I
Parfait
Vraiment complet, je trouve toujours tout ce que j'ai besoin, et rapidement
Trustpilot
2 weeks ago
1 month ago