The Linux Programmer's Toolbox
Home > Computing and Information Technology > Operating systems > Open source and other operating systems > Linux > The Linux Programmer's Toolbox
The Linux Programmer's Toolbox

The Linux Programmer's Toolbox


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

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 

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 412.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 1033.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 4158.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

About the Author :
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.


Best Sellers


Product Details
  • ISBN-13: 9780132198578
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Prentice Hall
  • Height: 234 mm
  • No of Pages: 656
  • Weight: 910 gr
  • ISBN-10: 0132198576
  • Publisher Date: 14 Mar 2007
  • Binding: Paperback
  • Language: English
  • Spine Width: 31 mm
  • Width: 181 mm


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
The Linux Programmer's Toolbox
Pearson Education (US) -
The Linux Programmer's Toolbox
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

The Linux Programmer's Toolbox

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!