The Linux Programmer's Toolbox (Paperback)
暫譯: Linux 程式設計師工具箱 (平裝本)
John Fusco
- 出版商: Prentice Hall
- 出版日期: 2007-03-16
- 定價: $1,650
- 售價: 8.0 折 $1,320
- 語言: 英文
- 頁數: 656
- 裝訂: Paperback
- ISBN: 0132198576
- ISBN-13: 9780132198578
-
相關分類:
Linux
立即出貨 (庫存=1)
買這商品的人也買了...
-
$1,575$1,496 -
$990$782 -
$1,264Advanced Programming in the UNIX Environment, 2/e (Hardcover)
-
$880$695 -
$880$695 -
$650$553 -
$780$663 -
$650$507 -
$550$468 -
$450$383 -
$980$774 -
$420$399 -
$650$507 -
$680$578 -
$720$612 -
$1,200$948 -
$2,040$1,938 -
$990UML 2 Certification Guide: Fundamental & Intermediate Exams (Paperback)
-
$580$493 -
$880$695 -
$780$663 -
$1,560$1,326 -
$620$409 -
$580$452 -
$600$480
相關主題
商品描述
Description
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
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
商品描述(中文翻譯)
**描述**
**掌握 Linux 工具,讓你成為更具生產力和效率的程式設計師**
《Linux 程式設計師工具箱》幫助你利用可用於 GNU/Linux 的大量開源工具。作者 John Fusco 系統性地描述了大多數 GNU/Linux 發行版上最有用的工具,並使用簡潔的範例,讓你可以輕鬆修改以滿足你的需求。
你將從學習下載、構建和安裝開源專案的基本知識開始。接著,你將了解開源工具的分發方式,以及如何避免浪費時間在不適合你的專案上。然後,你將學習構建自己專案的各種細節。Fusco 也會展示在文本編輯器中應該注意的事項,甚至可能會教你一些在你最愛的文本編輯器中的新技巧。
你將通過學習 Linux 核心如何與你的軟體互動來增強對 Linux 核心的知識。Fusco 以簡單且引人深思的範例帶你了解 Linux 核心的基本原理,並展示如何將這些知識應用於更高級的工具。他專注於如何解讀 sar、vmstat、valgrind、strace 等工具的輸出,並將其應用於你的應用程式;如何利用各種程式設計 API 開發自己的工具;以及如何編寫自我監控的程式碼。
接下來,Fusco 涵蓋了幫助你提升軟體性能的工具。他解釋了當今多核心 CPU 的原理,並展示如何從這些系統中榨取最大性能。最後,你將學習在任何情況下調試程式碼的工具和技術。
涵蓋內容包括:
- 使用編輯器、版本控制工具、源代碼瀏覽器和「美化工具」來最大化生產力
- 解讀核心:你的工具告訴你什麼
- 理解進程及其管理工具
- 使用 gprof 和 valgrind 追蹤和解決應用程式瓶頸
- 簡化和自動化文檔過程
- 在需要時快速找到幫助、解決方案和變通方法
- 使用 sar、vmstat、iostat 和其他工具優化程式碼
- 使用 shell 命令調試 IPC:信號、管道、套接字、文件和 IPC 對象
- 使用 printf、gdb 和其他基本調試工具
**目錄**
前言 xvii
序言 xix
致謝 xxiii
關於作者 xxv
第一章 下載和安裝開源工具 1
1.1 介紹 1
1.2 什麼是開源? 2
1.3 開源對你意味著什麼? 2
1.4 壓縮檔案簡介 4
1.5 了解你的套件管理器 12
1.6 有關安全性和套件的一些話 17
1.7 檢查套件內容 27
1.8 保持套件更新 33
1.9 總結 39
第二章 從源碼構建 41
2.1 介紹 41
2.2 構建工具 41
2.3 構建過程 74
2.4 理解錯誤和警告 78
2.5 總結 100
第三章 尋找幫助 103
3.1 介紹 103
3.2 在線幫助工具 103
3.3 其他查找地點 120
3.4 文檔格式 124
3.5 互聯網信息來源 131
3.6 尋找有關 Linux 核心的信息 134
3.7 總結 138
第四章 編輯和維護源文件 141
4.1 介紹 141
4.2 文本編輯器 142
4.3 版本控制 189
4.4 源代碼美化工具和瀏覽器 203
4.5 總結 216
第五章 每位開發者應該了解的核心知識 221
5.1 介紹 221
5.2 用戶模式與核心模式 222
5.3 進程調度器 226
5.4 理解設備和設備驅動程序 257
5.5 I/O 調度器 282
5.6 用戶空間中的內存管理 286
5.7 總結 315
第六章 理解進程 317
6.1 介紹 317
6.2 進程的來源 317
6.3 exec 函數 320
6.4 使用 wait 進行進程同步 327
6.5 進程足跡 329
6.6 設置進程限制 340
6.7 進程與 procfs 343
6.8 管理進程的工具 346
6.9 總結 355
第七章 進程間通信 357
7.1 介紹 357
7.2 使用普通文件的 IPC 358
7.3 共享內存 363
7.4 信號 370
7.5 管道 381
7.6 套接字 382
7.7 消息隊列 393
7.8 信號量 402
7.9 總結 412
第八章 使用 Shell 命令調試 IPC 415
8.1 介紹 415
8.2 處理打開文件的工具 415
8.3 從文件中轉儲數據 420
8.4 用於 System V IPC 的 Shell 工具 426
8.5 用於 POSIX IPC 的工具 431
8.6 用於處理信號的工具 434
8.7 用於處理管道和套接字的工具 437
8.8 使用 inode 識別文件和 IPC 對象 440
8.9 總結 442
第九章 性能調優 445
9.1 介紹 445
9.2 系統性能 445
9.3 應用性能 475
9.4 多處理器性能 501
9.5 總結 509
第十章 調試 513
10.1 介紹 513
10.2 最基本的調試工具:printf 514
10.3 與 GNU 調試器 gdb 變得熟悉 529
10.4 調試共享對象 561
10.5 尋找內存問題 569
10.6 非傳統技術 583
10.7 總結 594
索引 597