●章 實驗環境構建
1.1 安裝Linux
1.1.1 CentoS7
1.1.2 CentOS7安裝
1.2 虛擬機安裝Linux
1.2.1 VirtuaIBox安裝
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 簡單操作
1.4.2 運行HelloWorld程序
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 函數調用
……
第4章 鏈接與可執行文件
第5章 鏈接腳本與makefile
第6章 程序運行
第7章 性能剖析
第8章 綜合實例:HDFS中實現zlib庫的旁路
附錄
內容簡介
本書所討論的內容是“C語言程序設計”類課程的後續知識,涉及C程序在Linux環境下經過GCC編譯/鏈接生成可執行文件以及在繫統中運行的問題。本書能使讀者在面對C程序的工程實踐問題時,做到心中有數、處處不存疑。全書共7章,章介紹環境準備,第2章介紹C程序的預處理、編譯、彙編和鏈接的全過程,並介紹了一點關於GCC編譯命令及編譯選項、GDB調試初步概念,第3章專注於編譯環節,即從C到彙編的轉換,第4章專注於鏈接過程,第5章介紹可執行文件在繫統中運行時,觀察進程與繫統的關繫、進程對庫的調用、程序異常行為等問題,第6、7章介紹一些性能剖析方法,包括GCC自帶工具、庫函數打樁方法、valgrind及perf工具的簡單使用等,第8章介紹一個綜合性的實例,即如何將HDFS文件繫統使用的gzip壓縮,從利用zlib庫在CPU上計算轉換成利用FPGA加速卡的過程。該實例涉及庫的使用和修改、make......