Home > Store > Open Source

larger cover

Add To My Wish List

Linux Programmer's Toolbox, The

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Reviews
  • Sample Content

Product Author Bios

John Fusco is a software developer for GE Healthcare who specializes in Linux applications and device drivers. He has worked on Unix software for more than ten years and has been developing applications for Linux since kernel version 2.0. He has written articles for Embedded Systems Programming and Linux Journal.

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

  • 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 

Customer Reviews

15 of 16 people found the following review helpful
4.0 out of 5 stars How to learn Linux, May 31, 2007
By 
topoman "topoman" (Newark, California USA) - See all my reviews
This review is from: The Linux Programmer's Toolbox (Paperback)
This book is aimed at the person who has learned his way around Linux at the user level and now wants to look under the covers. It's extremely comprehensive - from how to add a Linux application that wasn't in your your initial distribution - whether you can use the binary or need to rebuild it from source - through basic facts on the kernel, devices and their drivers, processes and debugging tools. There has been a need for a book that addresses readers who do know something about computers, but not much Linux. This book fills that need extremely well.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


20 of 23 people found the following review helpful
4.0 out of 5 stars I'm awestruck, March 15, 2007
This review is from: The Linux Programmer's Toolbox (Paperback)
No, really. The first thing that impressed me is how much information the author packed into 600 odd pages. It takes skill to do that well and still be readable and interesting.

A programmer moving from anything to Linux would find this a simply wonderful roadmap and introduction, but I was surprised to notice that this would also be very good for non-programmers: sys admin or high level support types will like this book also.

There's good stuff here: the subsection of Chapter Two that deals with things that can go wrong during compiles is the best treatment of that I've ever read. Chapter 5 is titled "What every developer should know about the kernel", but most of it is things every admin/support person should know too. Of course there's much more: this is very thorough and complete.

Definitely recommended.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful
5.0 out of 5 stars A very good reference book to Linux developers, September 1, 2008
This review is from: The Linux Programmer's Toolbox (Paperback)
It is a very good reference to Linux developers, by providing the most common seen or most used techniques in Linux developments. It covers from the most used tools, including source version control, source code edit, debug,etc, to a brief introduction on the Linux kernel architecture and memory management, that is essential to any programmers who want to know the "evil" inside the kernel.

Jason
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 11 customer reviews...

Table of Contents

Foreword xvii

Preface xix

Acknowledgments xxiii

About the Author xxv

Chapter 1 Downloading and Installing Open Source Tools 1

1.1 Introduction 1

1.2 What Is Open Source? 2

1.3 What Does Open Source Mean to You? 2

1.4 An Introduction to Archive Files 4

1.5 Know Your Package Manager 12

1.6 Some Words about Security and Packages 17

1.7 Inspecting Package Contents 27

1.8 Keeping Packages up to Date 33

1.9 Summary 39

Chapter 2 Building from Source 41

2.1 Introduction 41

2.2 Build Tools 41

2.3 The Build Process 74

2.4 Understanding Errors and Warnings 78

2.5 Summary 100

Chapter 3 Finding Help 103

3.1 Introduction 103

3.2 Online Help Tools 103

3.3 Other Places to Look 120

3.4 Documentation Formats 124

3.5 Internet Sources of Information 131

3.6 Finding Information about the Linux Kernel 134

3.7 Summary 138

Chapter 4 Editing and Maintaining Source Files 141

4.1 Introduction 141

4.2 The Text Editor 142

4.3 Revision Control 189

4.4 Source Code Beautifiers and Browsers 203

4.5 Summary 216

Chapter 5 What Every Developer Should Know about the Kernel 221

5.1 Introduction 221

5.2 User Mode versus Kernel Mode 222

5.3 The Process Scheduler 226

5.4 Understanding Devices and Device Drivers 257

5.5 The I/O Scheduler 282

5.6 Memory Management in User Space 286

5.7 Summary 315

Chapter 6 Understanding Processes 317

6.1 Introduction 317

6.2 Where Processes Come From 317

6.3 The exec Functions 320

6.4 Process Synchronization with wait 327

6.5 The Process Footprint 329

6.6 Setting Process Limits 340

6.7 Processes and procfs 343

6.8 Tools for Managing Processes 346

6.9 Summary 355

Chapter 7 Communication between Processes 357

7.1 Introduction 357

7.2 IPC Using Plain Files 358

7.3 Shared Memory 363

7.4 Signals 370

7.5 Pipes 381

7.6 Sockets 382

7.7 Message Queues 393

7.8 Semaphores 402

7.9 Summary 412

Chapter 8 Debugging IPC with Shell Commands 415

8.1 Introduction 415

8.2 Tools for Working with Open Files 415

8.3 Dumping Data from a File 420

8.4 Shell Tools for System V IPC 426

8.5 Tools for Working with POSIX IPC 431

8.6 Tools for Working with Signals 434

8.7 Tools for Working with Pipes and Sockets 437

8.8 Using Inodes to Identify Files and IPC Objects 440

8.9 Summary 442

Chapter 9 Performance Tuning 445

9.1 Introduction 445

9.2 System Performance 445

9.3 Application Performance 475

9.4 Multiprocessor Performance 501

9.5 Summary 509

Chapter 10 Debugging 513

10.1 Introduction 513

10.2 The Most Basic Debugging Tool: printf 514

10.3 Getting Comfortable with the GNU Debugger: gdb 529

10.4 Debugging Shared Objects 561

10.5 Looking for Memory Issues 569

10.6 Unconventional Techniques 583

10.7 Summary 594

Index 597

Preface

Download the Preface

Downloadable Sample Chapter

Download the sample chapter

Foreword

Download the Forward

Index

Download the Index

 
Best Value

Book + eBook Bundle  $89.98  $53.99

Book Price $39.99
eBook Price $14.00
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $49.99  $39.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $39.99  $31.99

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.