Linux Programmer's Toolbox, The
ISBN-10: 0132198576
ISBN-13: 9780132198578
Publisher: Prentice Hall
Copyright: 2007
Format: Paper; 656 pp
Published: 03/06/2007
Status: Instock
Customers outside the U.S., click here.
Table of Contents
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
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
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
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
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
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
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
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
9.1 Introduction 445
9.2 System Performance 445
9.3 Application Performance 475
9.4 Multiprocessor Performance 501
9.5 Summary 509
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
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.
Backcover Copy
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
This product is a member of the following series. Click on the series name to see the full list of products in the series.
Log in to the Instructor Resource Center
Login name:
Password:
Forgot login/password? | Need to redeem an access code?
Instructor Resource Center File Download
This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.| Cancel | I accept, proceed with download |
Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.