Master the Linux Tools That Will Make You a More Productive, Effective Programmer The Linux Programmer's Toolbox helps you tap into the vast collection of open source tools available for GNU/Linux. Author John Fusco systematically describes the most useful tools available on most GNU/Linux distributions using concise examples that you can easily modify to meet your needs. You'll start by learning the basics of downloading, building, and installing open source projects. You'll then learn how open source tools are distributed, and what to look for to avoid wasting time on projects that aren't ready for you. Next, you'll learn the ins and outs of building your own projects. Fusco also demonstrates what to look for in a text editor, and may even show you a few new tricks in your favorite text editor. You'll enhance your knowledge of the Linux kernel by learning how it interacts with your software. Fusco walks you through the fundamentals of the Linux kernel with simple, thought-provoking examples that illustrate the principles behind the operating system. Then he shows you how to put this knowledge to use with more advanced tools. He focuses on how to interpret output from tools like sar, vmstat, valgrind, strace, and apply it to your application; how to take advantage of various programming APIs to develop your own tools; and how to write code that monitors itself. Next, Fusco covers tools that help you enhance the performance of your software. He explains the principles behind today's multicore CPUs and demonstrates how to squeeze the most performance from these systems. Finally, you'll learn tools and techniques to debug your code under any circumstances. Coverage includes Foreword Preface Acknowledgments About the Author Chapter 1 Downloading and Installing Open Source Tools Chapter 2 Building from Source Chapter 3 Finding Help Chapter 4 Editing and Maintaining Source Files Chapter 5 What Every Developer Should Know about the Kernel Chapter 6 Understanding Processes Chapter 7 Communication between Processes Chapter 8 Debugging IPC with Shell Commands Chapter 9 Performance Tuning Chapter 10 Debugging Index
It's worth mention, that you should understand what the purpose of this book.
There are 2 types of books (roughly):
1. Reference manual: it represents well-organized tips and notes, that you'll probably use on a daily basis. 2. Educational: you'll learn some fundamentals things.
This book represents the first type (reference manual type) and should be used as a reference when you need it.
Not necessarily useful for the average Gnome or KDE developer, but if you're writing, or working with, daemons or low-level system apps, it's very useful. Also good as a supplementary text for an operating systems course.
Shows a lot of operating systems concepts from the pragmatic viewpoint of how to interact with them from the shell. Explains, in some detail, the workings of the linux kernel.
Highly recommend for students or armchair kernel devs!