Master the Linux Tools That Will Make You a More
Productive, Effective ProgrammerThe 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
- Maximizing productivity with editors, revision
control tools, source code browsers, and
"beautifiers"
- Interpreting the kernel: what your tools are
telling you
- Understanding processes–and the tools available
for managing them
- Tracing and resolving application bottlenecks with
gprof and valgrind
- Streamlining and automating the documentation
process
- Rapidly finding help, solutions, and workarounds
when you need them
- Optimizing program code with sar, vmstat, iostat,
and other tools
- Debugging IPC with shell commands: signals, pipes,
sockets, files, and IPC objects
- Using printf, gdb, and other essential debugging
tools
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