程序員的自我修養 鏈接裝載與庫 程序员的自我修养:链接、装载与库

潘愛民, 俞甲子, 石凡

已絕版

買這商品的人也買了...

相關主題

商品描述

<內容簡介>

本書主要介紹系統軟件的運行機制和原理,涉及在Windows和Linux兩個系統平臺上,一個應用程序在編譯、鏈接和運行時刻所發生的各種事項,包括:代碼指令是如何保存的,庫文件如何與應用程序代碼靜態鏈接,應用程序如何被裝載到內存中並開始運行,動態鏈接如何實現,C/C 運行庫的工作原理,以及操作系統提供的系統服務是如何被調用的。每個技術專題都配備了大量圖、表和代碼實例,力求將復雜的機制以簡潔的形式表達出來。本書最後還提供了一個小巧且跨平臺的C/C 運行庫MiniCRT,綜合展示了與運行庫相關的各種技術。
  本書對裝載、鏈接和庫進行了深入淺出的剖析,並且輔以大量的例子和圖表,可以作為計算機軟件專業和其他相關專業大學本科高年級學生深入學習系統軟件的參考書。同時,還可作為各行業從事軟件開發的工程師、研究人員以及其他對系統軟件實現機制和技術感興趣者的自學教材。

<目錄>

第1部分 簡介
 第1章 溫故而知新
  1.1 從HELLO WORLD 說起
  1.2 萬變不離其宗
  1.3 站得高,望得遠
  1.4 操作系統做什麽
  1.5 內存不夠怎麽辦
  1.6 眾人拾柴火焰高
  1.7 本章小結
第2部分 靜態鏈接
 第2章 編譯和鏈接
  2.1 被隱藏了的過程
  2.2 編譯器做了什麽
  2.3 鏈接器年齡比編譯器長
  2.4 模塊拼裝——靜態鏈接
  2.5 本章小結
 第3章 目標文件里有什麽
  3.1 目標文件的格式
  3.2 目標文件是什麽樣的
  3.3 挖掘SIMPLESECTION.O
  3.4 ELF 文件結構描述
  3.5 鏈接的接口——符號
  3.6 調試信息
  3.7 本章小結
 第4章 靜態鏈接
  4.1 空間與地址分配
  4.2 符號解析與重定位
  4.3 COMMON 塊
  4.4 C 相關問題
  4.5 靜態庫鏈接
  4.6 鏈接過程控制
  4.7 BFD 庫
  4.8 本章小結
 第5章 WINDOWS PE/COFF
  5.1 WINDOWS 的二進制文件格式PE/COFF 134
  5.2 PE 的前身——COFF
  5.3 鏈接指示信息
  5.4 調試信息
  5.5 大家都有符號表
  5.6 WINDOWS 下的ELF——PE
  5.7 本章小結
第3部分 裝載與動態鏈接
 第6章 可執行文件的裝載與進程
  6.1 進程虛擬地址空間
  6.2 裝載的方式
  6.3 從操作系統角度看可執行文件的裝載
  6.4 進程虛存空間分佈
  6.5 LINUX 內核裝載ELF 過程簡介
  6.6 WINDOWS PE 的裝載
  6.7 本章小結
 第7章 動態鏈接
  7.1 為什麽要動態鏈接
  7.2 簡單的動態鏈接例子
  7.3 地址無關代碼
  7.4 延遲綁定(PLT)
  7.5 動態鏈接相關結構
  7.6 動態鏈接的步驟和實現
  7.7 顯式運行時鏈接
  7.8 本章小結
 第8章 LINUX 共享庫的組織
  8.1 共享庫版本
  8.2 符號版本
  8.3 共享庫系統路徑
  8.4 共享庫查找過程
  8.5 環境變量
  8.6 共享庫的創建和安裝
  8.7 本章小結
 第9章 WINDOWS 下的動態鏈接
  9.1 DLL 簡介
  9.2 符號導出導入表
  9.3 DLL 優化
  9.4 C 與動態鏈接
  9.5 DLL HELL
  9.6 本章小結
第4部分 庫與運行庫
 第10章 內存
  10.1 程序的內存佈局
  10.2 棧與調用慣例
  10.3 堆與內存管理
  10.4 本章小結
 第11章 運行庫
  11.1 入口函數和程序初始化
  11.2 C/C 運行庫
  11.3 運行庫與多線程
  11.4 C 全局構造與析構
  11.5 FREAD 實現
  11.6 本章小結
 第12章 系統調用與API
  12.1 系統調用介紹
  12.2 系統調用原理
  12.3 WINDOWS API
  12.4 本章小結
 第13章 運行庫實現
  13.1 C 語言運行庫
  13.2 如何使用MINI CRT
  13.3 C 運行庫實現
  13.4 如何使用MINI CRT
  13.5 本章小結
附錄A
 A.1 字節序(BYTE ORDER)
 A.2 ELF 常見段
 A.3 常用開發工具命令行參考
索引