Book Image

Hands-On System Programming with Linux

By : Kaiwan N. Billimoria, Tigran Aivazian
Book Image

Hands-On System Programming with Linux

By: Kaiwan N. Billimoria, Tigran Aivazian

Overview of this book

The Linux OS and its embedded and server applications are critical components of today’s software infrastructure in a decentralized, networked universe. The industry's demand for proficient Linux developers is only rising with time. Hands-On System Programming with Linux gives you a solid theoretical base and practical industry-relevant descriptions, and covers the Linux system programming domain. It delves into the art and science of Linux application programming— system architecture, process memory and management, signaling, timers, pthreads, and file IO. This book goes beyond the use API X to do Y approach; it explains the concepts and theories required to understand programming interfaces and design decisions, the tradeoffs made by experienced developers when using them, and the rationale behind them. Troubleshooting tips and techniques are included in the concluding chapter. By the end of this book, you will have gained essential conceptual design knowledge and hands-on experience working with Linux system programming interfaces.
Table of Contents (21 chapters)

Debugging Tools for Memory Issues

We humans (we assume a human is reading this book and not some form of AI, though, who knows nowadays) are good at many intricate, complex tasks; but, we're also terrible at many mundane ones. That's why we invented computers—with the software to drive them!

Well. We're not really great at spotting details buried deep inside C (or assembly) code—memory bugs are a prime example of cases where we humans can use help. So, guess what: we've invented software tools to help us—they do the mundane, boring job of instrumenting and checking millions and billions of lines of our code and binaries, and are getting really effective at catching our bugs. Of course, when all is said and done, the best tool is still your brain, but nevertheless one might well ask: Who and what will debug the tools that one uses for debugging...