Q&A with Robert Love, author of "Linux System Programming, 2nd Edition"
Q. Why is your book timely-- what makes it important right now?
A. Developing system software on Unix has always been in vogue, but we've seen a large increase in demand with the rise of the cloud and the web. Where before user apps were primarily client-side, UI-focused programs, now system-level software running in huge data centers at massive scale provides even the simplest of our computing functionality. The code powering the largest of cloud-based providers such as Google or Twitter down to the smallest startup is all system-level software. And nearly all of it runs on Linux.
Q. What information do you hope that readers of your book will walk away with?
A. The system API on Linux: what it is and how to use it as an expert. The book is an API reference manual, of course, but it is also chock-full of anecdotes, insider tips, and Linux-specific techniques that take it beyond your generic Unix API guide.
Q. What's the most exciting thing happening in your space?
A. Definitely the ever-increasing scale of distributed systems that power the cloud and web apps we all use. I work at Google on web search infrastructure; the scale and scope of our systems is absolutely stunning. And, at the end of the day, it is all just Linux system code running on (a very large number of) Linux machines.
Q. What are some of the topics readers will learn in the second edition of Linux System Programming?
- How to design your multithreaded application for maximum performance
- How to efficiently perform I/O
- The pitfalls behind real-time processes
- How to take advantage of modern hardware such as multicore processors or SSDs
- Why your program's I/O model dictates its threading model