Linux GNU C 程序觀察
羅秋明
買這商品的人也買了...
-
程式設計師的自我修養-連結、載入、程式庫$580$458 -
Debug Hacks 除錯駭客 -- 極致除錯的技巧與工具$580$458 -
Linux 系統程式設計, 2/e (內容涵蓋 Linux Kernel 3.0) (Linux System Programming: Talking Directly to the Kernel and C Library)$780$616 -
Linux Kernel Hacks 改善效能、提昇開發效率及節能的技巧與工具$680$537 -
$414追蹤 Linux TCP\IP 代碼運行 -- 基於2.6內核 -
$301嵌入式 Linux 與物聯網軟件開發 : C語言內核深度解析 -
Linux 二進制分析$354$336 -
$354操作系統之編程觀察 -
$774Linux C 與 C++ 一線開發實踐 -
$354代碼裏的世界觀 通往架構師之路 -
精通嵌入式 Linux 程式設計 (暢銷回饋版)$620$484 -
C Traps and Pitfalls (中文版)$380$296 -
機器學習的數學基礎 : AI、深度學習打底必讀$580$458 -
$414精通 Vim : 用 Vim 8 和 Neovim 實現高效開發 -
第一行代碼 : Android, 3/e$594$564 -
K線圖量化分析:用大數據研判股票、期貨、外匯買賣點$419$398 -
$235案例驅動的C語言程序設計 -
$403現代電力電子學導論, 3/e (Introduction to Modern Power Electronics, 3/e) -
$331C/C++語言程序設計(第2版) -
小輕快跨平台:王的編輯器 Visual Studio Code 聖經$880$695 -
Jupyter Notebook 數據分析入門與實戰$594$564 -
$658奔跑吧 Linux 內核入門篇, 2/e -
$559嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統 -
$811嵌入式 Linux 設備驅動程序開發指南, 2/e (Linux Driver Development for Embedded Processors : Learn to develop Linux embedded drivers with kernel 4.9 LTS, 2/e (Paperback)) -
現代 C++ 語言核心特性解析$719$683
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書所討論的內容是“C語言程序設計”類課程的後續知識,涉及C程序在Linux環境下經過GCC編譯/鏈接生成可執行文件以及在系統中運行的問題。本書能使讀者在面對C程序的工程實踐問題時,做到心中有數、處處不存疑。 全書共7章,第1章介紹環境準備,第2章介紹C程序的預處理、編譯、匯編和鏈接的全過程,並介紹了一點關於GCC編譯命令及編譯選項、GDB調試初步概念,第3章專註於編譯環節,即從C到匯編的轉換,第4章專註於鏈接過程,第5章介紹可執行文件在系統中運行時,觀察進程與系統的關系、進程對庫的調用、程序異常行為等問題,第6、7章介紹一些性能剖析方法,包括GCC自帶工具、庫函數打樁方法、valgrind及perf工具的簡單使用等,第8章介紹一個綜合性的實例,即如何將HDFS文件系統使用的gzip壓縮,從利用zlib庫在CPU上計算轉換成利用FPGA加速卡的過程。該實例涉及庫的使用和修改、makefile以及相應的C程序實現等多方面知識,讓讀者從一個工程需求的角度考察其方案與實現。每章後面都有一些練習題,其中有一個與zlib庫相關的任務貫穿了各章,讀者通過這個連貫的練習將各章知識融會貫通。 本書可以作為電腦及相關專業高年級本科生或研究生學習Linux環境下的C程序設計教學用書,對希望深入瞭解Linux內核的讀者和相關開發人員也非常有參考價值。
目錄大綱
第1章 實驗環境構建
1.1 安裝Linux
l.1.1 下載CentOS7
1.1.2 CentOS7安裝
1.2 虛擬機安裝Linux
1.2.1 VirtualBox安裝
1.2.2 虛擬機配置
1.2.3 虛擬機安裝Linux
1.3 ssh遠程終端訪問
1.3.1 PuTTY客戶端
1.3.2 無密碼登錄
1.3.3 Xming圖形終端
1.4 初次接觸Linux
1.4.1 簡單操作
l.4.2 運行Hello World程序
1.5 小結
第2章 程序編譯與運行
2.1 編譯的各階段
2.1.1 源代碼
2.1.2 預處理
2.1.3 編譯
2.1.4 匯編
2.1.5 鏈接
2.1.6 GCC編譯驅動
2.2 GCC基本用法
2.2.1 C語言標準
2.2.2 庫的使用
2.2.3 搜索路徑
2.2.4 編譯警告
2.3 GDB調試
2.3.1 代碼準備
2.3.2 運行代碼
2.3.3 查看變量和內存
2.3.4 圖形前端TUI
2.4 小結
練習
第3章 數據、運算與控制
3.1 x86—64 ISA
3.1.1 寄存器
3.1.2 內存空間與I/O空間
3.2 數據
3.2.1 數據大小、字節序
3.2.2 數組、結構體和聯合體
3.2.3 數據佈局
3.3 運算
3.3.1 數據傳送
3.3.2 算術/邏輯運算
3.3.3 加載有效地址
3.4 控制
3.4.1 條件跳轉
3.4.2 函數調用
3.5 小結
練習
第4章 鏈接與可執行文件
4.1 生成可執行文件
4.1.1 樣例代碼
4.1.2 進程影像
4.1.3 ELF文件與裝入
4.2 可重定位目標文件
4.2.1 目標文件的節(section)
4.2.2 符號及重定位
4.2.3 符號表
4.3 靜態鏈接
4.3.1 佈局
4.3.2 符號解析
4.3.3 靜態重定位
4.4 動態鏈接
4.4.1 樣例代碼
4.4.2 動態鏈接庫
4.4.3 動態鏈接步驟
4.5 小結
練習
第5章 鏈接腳本與makefile
5.1 二進制工具和鏈接腳本
5.1.1 binutils
5.1.2 鏈接器腳本
5.2 makefile
5.2.1 makefile基本格式
5.2.2 makefile規則
5.2.3 makefile變量
5.2.4 文件指示
5.2.5 函數
5.2.6 make
5.3 小結
練習
第6章 程序運行
6.1 裝入與運行
6.1.1 ELF裝載器
6.1.2 內核代碼
6.1.3 進程與線程
6.1.4 工作環境
6.2 基本行為觀察
6.2.1 ptrace
6.2.2 strace
6.2.3 GDB斷點原理
6.2.4 ltrace
6.3 異常行為
6.3.1 非法操作
6.3.2 響應信號
6.3.3 core文件
6.4 小結
練習
第7章 性能剖析
7.1 打樁方法
7.1.1 源代碼預處理時
7.1.2 靜態鏈接時
7.1.3 運行加載時
7.2 gprof
7.2.1 工作原理
7.2.2 gprof示例
7.2.3 性能數據解讀
7.2.4 圖形化顯示(gprof2dot.py+graphviz)
7.3 gcov
7.3.1 基於函數分析的缺點
7.3.2 gcov逐行分析
7.4 其他分析工具
7.4.1 Valgrind
7.4.2 perf
7.5 小結
練習
第8章 綜合實例:HDFS中實現zlib庫的旁路
8.1 項目需求
8.2 系統分析
8.2.1 整體方案
8.2.2 Haddop的gzip JNI
8.2.3 zlib分析
8.2.4 測定z_stream成員大小
8.3 編碼實現
8.3.1 zlib日誌
8.3.2 Log4c
8.3.3 使用libcprss.so庫
8.4 功能驗證
8.4.1 準備輸入文件
8.4.2 zlib原生庫的壓縮
8.4.3 lmcprss.so庫的壓縮
8.5 小結
附錄



